我正在使用angular 2常见的http来返回一个Observable,但是当我使用嵌套的Observable调用时,我遇到的问题是我的代码喜欢网格:
this.serviceA.get().subscribe((res1: any) => {
   this.serviceB.get(res1).subscribe((res2: any) => {
       this.serviceC.get(res2).subscribe((res3: any) => {
       })
   })
})
现在我想使用async/await来避免这种情况,但async/await只适用于Promise.我知道Observable可以转换为Promise,但据我所知,这不是一个好习惯.那我该怎么办?
顺便说一句,如果有人能给我一个示例代码来解决这个问题,那将是很好的async/await:D
我有一个异步生成器:
async function* foo() {
  yield "wait...";
  await new Promise(r=>setTimeout(r, 900));
  yield new Promise(r=>setTimeout(()=>r("okay!"), 100));
}
async function main() {
  for await (let item of foo()) {
    let result = await item;
    console.log(result);
  }
}
main();
但是使用typescript 2.3,这给了我错误:
错误TS2318:找不到全局类型'AsyncIterableIterator'.example.ts(10,26):
错误TS2504:类型必须具有返回异步迭代器的'Symbol.asyncIterator'方法.
如何修复此错误以及如何运行异步生成器?