Making an IObservable<T> that uses async/await return completed tasks in original order
问题 Suppose you have a list of 100 urls and you want to download them, parse the response and push the results through an IObservable: public IObservable<ImageSource> GetImages(IEnumerable<string> urls) { return urls .ToObservable() .Select(async url => { var bytes = await this.DownloadImage(url); var image = await this.ParseImage(bytes); return image; }); } I have some problems with this. One is that it's bad etiquette to hammer a server with 100 requests at the same time -- ideally you would