ASP.NET वेब API प्रोजेक्ट में IAsyncEnumerable की खोज करते समय मुझे एक दिलचस्प व्यवहार का सामना करना पड़ा। निम्नलिखित कोड नमूनों पर विचार करें:
// Code Sample 1
[HttpGet]
public async IAsyncEnumerable<int> GetAsync()
{
for (int i = 0; i < 10; i++)
{
await Task.Delay(1000);
yield return i;
}
}
// Code Sample 2
[HttpGet]
public async IAsyncEnumerable<string> GetAsync()
{
for (int i = 0; i < 10; i++)
{
await Task.Delay(1000);
yield return i.ToString();
}
}
नमूना 1 (इंट सरणी) {}
JSON परिणाम के रूप में देता है ।
नमूना 2 रिटर्न अपेक्षित परिणाम ["0","1","2","3","4","5","6","7","8","9"]
। हालाँकि, पूरे JSON सरणी को 10 सेकंड के इंतजार के बाद एक बार में लौटा दिया जाता है। क्या इसे वापस नहीं किया जाना चाहिए क्योंकि डेटा IAsyncEnumerable इंटरफ़ेस से अपेक्षित रूप से उपलब्ध हो जाता है? या क्या कोई विशिष्ट तरीका है जिसे इस वेब एपी का उपभोग किया जाना चाहिए?
IAsyncEnumerable<int>
जाते हैं IAsyncEnumerable<object>
- यह काम करना चाहिए लेकिन फिर इसमें एक मुक्केबाजी शामिल है)