javascript - for 循环中的几个异步调用,需要知道所有调用何时使用 observables 完成
问题描述
我在 for 循环中进行递归调用,如何知道所有调用何时使用 observables 或其他技术完成?以下代码有效,但我知道有更好的方法。
let assync_service_lenght = groups.length;
let assync_count = 0;
groups.forEach(group=> {
//get contacts from groups
this.serviceGroups.getGroupsPeople(group.value).subscribe(res => {
//ADD NEW CONTACT
assync_count++
if(assync_service_lenght==assync_count){
this.sendHTTP(sms);
}
});
});
解决方案
尝试这样的事情:
from(groups)
.pipe(mergeMap(group => this.serviceGroups.getGroupsPeople(group.value)))
.subscribe(
() => console.log('add new contact'),
e => console.error('error', e),
() => {
this.sendHTTP(sms);
}
);
推荐阅读
- netbeans - 无法在 ubunty 的 netbenas 中安装 oracle java me sdk 插件
- c - 将 char* 传递给 atoi
- angular - 如何以角度获取复选框的选中和未选中值
- flutter - Flutter - 如何修复应用程序元数据,以便将我的应用程序发布到 Google Play?
- javascript - 如何在页面内的复选框列表上触发 .click() 事件?
- quantitative-finance - 绘制波动率表面时出现 QuantLib 错误
- powershell - Powershell在与文本混合的Word文档中添加多个风格化表格
- html - 如何在codeigniter的mpdf中集成fontawesome图标?
- azure - 没有本地域控制器的 Azure AD Connect
- android - Flutter 无法使用 webview 显示本地文件