相关疑难解决方法(0)

使用带有async/await的Observable是一个好习惯吗?

我正在使用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) => {

       })
   })
})
Run Code Online (Sandbox Code Playgroud)

现在我想使用async/await来避免这种情况,但async/await只适用于Promise.我知道Observable可以转换为Promise,但据我所知,这不是一个好习惯.那我该怎么办?

顺便说一句,如果有人能给我一个示例代码来解决这个问题,那将是很好的async/await:D

javascript promise observable typescript angular

34
推荐指数
4
解决办法
2万
查看次数

TS2318:找不到全局类型'AsyncIterableIterator' - 异步生成器

我有一个异步生成器:

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();
Run Code Online (Sandbox Code Playgroud)

但是使用typescript 2.3,这给了我错误:

错误TS2318:找不到全局类型'AsyncIterableIterator'.example.ts(10,26):

错误TS2504:类型必须具有返回异步迭代器的'Symbol.asyncIterator'方法.

如何修复此错误以及如何运行异步生成器?

async-await typescript

18
推荐指数
1
解决办法
6251
查看次数