একটি এএসপি.নেট ওয়েব এপিআই প্রকল্পে 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 (int অ্যারে) {}
JSON ফলাফল হিসাবে ফিরে আসে ।
নমুনা 2 প্রত্যাশিত ফলাফল প্রদান করে ["0","1","2","3","4","5","6","7","8","9"]
। তবে 10 সেকেন্ড অপেক্ষা করার পরে পুরো JSON অ্যারে একবারে ফিরে আসে। আইএআইএসএনসিউনমেন্টেবল ইন্টারফেস থেকে প্রত্যাশার মতো ডেটা উপলভ্য হওয়ার সাথে সাথে কী তা ফেরানো উচিত নয়? বা এই ওয়েব এপিআই গ্রহণ করা উচিত কোন নির্দিষ্ট উপায়?
IAsyncEnumerable<int>
করেন IAsyncEnumerable<object>
- এটির কাজ করা উচিত তবে একটি বক্সিং জড়িত থাকতে পারে)