调用多个API并按顺序订阅它们

时间:2019-01-07 16:54:14

标签: angular rxjs concat

注意。我仅限使用AngularRxJS 版本5 。 :-(
我想多次调用API,具体取决于我已经订阅的可观察对象中数组的值。该代码遵循以下逻辑:

this.api.doSomething()
.pipe(
 tap(things => this.thingsArray = things),
 // I want to call an API like this:
    for(const thing of things) {
    this.secondApi.getOtherThings(thing.id)
    .pipe(
     tap(otherthing => this.ExtendedThings.push ({...request, otherThingy: otherThing)
     )
    }
).subscribe()

我对如何在前端执行此操作感兴趣。我已经尝试过concat,但是按照我的方式却没有任何subscribe方法。我想我做错了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为这可能是您想要的。 Flatmap允许您使用一个Observable的结果来发出另一个请求。在这种情况下,我们将返回通过合并多个可观察对象而生成的可观察对象。

# /var/log/django_debug.log
"GET /docs/ HTTP/1.1" 200 1391207
"GET /docs/schema.js HTTP/1.1" 200 111440