angular - 在执行下一个代码之前等待 forkjoin 完成
问题描述
我想知道是否可以就某些我不确定的行为获得帮助。在我下面的代码中,clients.forEach() 给出了一个错误,我认为是因为它与 forkJoin() 同时执行。所以客户是空的。有没有办法让下一个代码“等待” forkJoin() 函数首先完成,而不必将 clients.forEach() 放在 subscription() 函数中。clients.forEach() 代码实际上很长而且很乱。
forkJoin({
xclients: this.clients$,
xkycMetrics: this.clientsBySHID$
}).subscribe(({xclients, xkycMetrics}) => {
clients = xclients,
kycMetrics = xkycMetrics
});
// Client Data
clients.forEach(client => {......});
解决方案
确保数据准备就绪的唯一方法是添加到该订阅函数。您始终可以将逻辑分离到自己的函数中并对其进行调用:
}).subscribe(({xclients, xkycMetrics}) => {
clients = xclients,
kycMetrics = xkycMetrics
this.mapClients(clients)
});
mapClients(clients: type) {
clients.forEach(client => {......});
}
推荐阅读
- reactjs - 如何将反应路由器中的状态传递给组件
- c++ - 在heroku上运行c++程序
- function - 我正在使用 opencv-3.4.1 并且不能使用 imshow()。认为没有库!我该如何解决?
- javascript - 广义咖喱 - Javascript
- python - 将对称对的数据框转换为数据透视表
- angularjs - 角度js网格选项
- html - HTML 表格未正确呈现
- sql - 如何在 PROC SQL for SAS 中按名称分组(返回错误消息)
- angular - 打字稿函数返回未定义
- javascript - jQuery | 如何将var添加到ajax url?