gpt4 book ai didi

javascript - RxJS:连接三个 promise ,区分结果

转载 作者:数据小太阳 更新时间:2023-10-29 04:05:10 27 4
gpt4 key购买 nike

我有三个 promise ,Rest 请求返回数据列表。
第三个有对前两个列表的引用(ids),所以我想在我拥有所有数据时将这些 ids 映射到相应的名称。
映射不是问题,我只是为此使用了 Lodash。
但问题是在开始计算此映射之前等待三个 promise 解决。

我想到了使用 concat():

Rx.Observable.concat(p1, p2, p3).subscribe(
function onNext(list)
{
// Assign the list to the corresponding variable in the scope
},
function onError(e)
{
// Notify of error
},
function onCompleted()
{
// Do the mapping
}
);

我的问题是 onNext() 将以随机顺序调用。 IE。我不知道我在某个时候收到了哪个列表,而且很难从它包含的数据中分辨出来。

有没有办法跟踪哪些 promise 产生了哪些列表?一种 zipper ?连接映射?连接 map 观察者?我承认我还没有完全理解最后两个的用法......

最佳答案

如果这些是我们正在谈论的 promise ,我想您可以看看 forkJoin 运算符。比照。 https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md , http://xgrommx.github.io/rx-book/content/observable/observable_methods/forkjoin.html

然后你可以有类似的东西:

Rx.Observable.forkJoin(p1, p2, p3, function(p1,p2,p3){
/* your combining code here */
})

简而言之,如果您知道 promises 库 RSVP,forkJoin 的语义类似于 RSVP.all

关于javascript - RxJS:连接三个 promise ,区分结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com