gpt4 book ai didi

javascript - angularjs promise 在显示消息之前等待 3 个服务完成

转载 作者:行者123 更新时间:2023-12-03 08:12:10 25 4
gpt4 key购买 nike

我的 UI 上有一个包含 3 个选项的复选框,每个复选框选项都代表要实现的独立服务。但是,由于这些服务的调用方式不同,我需要想出一种方法来等待所有选定的选项完成,直到显示消息。

基本上,最初的实现是这样的:

if (doA) {
mysvc.doA();
}

if (doB) {
mysvc.doB();
}

if (doC) {
mysvc.doC();
}

window.alert('success');

然后我意识到我需要等待所有这些都完成,所以我想出了这个:

if (doA) {
mysvc.doA();
}

if (doB) {
mysvc.doB();
}

if (doC) {
mysvc.doC();
}

setTimeout(function () {
window.alert('success');
}, 8000);

因为如果全部选择,操作通常最多需要 8 秒才能完成。但这显然并不理想。另外,我最终想在最后为每个单独的操作提供反馈。任何帮助或资源将不胜感激。

最佳答案

你可以使用$q.all:

var promises = [];
if (doA) {
promises.push(mysvc.doA);

}

if (doB) {
promises.push(mysvc.doB);
}

if (doC) {
promises.push(mysvc.doC);
}

$q.all(promises).then(function(d){
window.alert('success');
})

关于javascript - angularjs promise 在显示消息之前等待 3 个服务完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096878/

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