gpt4 book ai didi

angular - 在两个 Observable 完成后做一些事情

转载 作者:太空狗 更新时间:2023-10-29 18:21:54 25 4
gpt4 key购买 nike

我正在调用两个服务:

myfirstService.getCollections().subscribe(collection => myCollection = collection);

mysecondService.getCollectionId().subscribe(id => myId = id);

现在我需要根据 Id 从集合中获取项目,就像这样

mycollection.find(x => x.id == myId);

当然这应该在我得到collections和id之后再做。

Collection 和 Id 显示在 UI 中,所以我不想在另一个内部调用一个,我也不想等到两者都完成,因为我需要在交付后立即使用 collections 和 id。

只有在所有调用完成后才能获取对象。

最佳答案

您可以使用 tap 将发出的值分配给全局变量,只要您得到它。然后同时执行两个 Observables 并等待它们用 forkJoin 完成。

forkJoin(
myfirstService.getCollections().pipe(
tap(collection => myCollection = collection)
),
mysecondService.getCollectionId().pipe(
tap(id => myId = id)
)
).subscribe(([collection, id]) => collection.find(x => x.id == id))

关于angular - 在两个 Observable 完成后做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902367/

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