gpt4 book ai didi

javascript - 按顺序运行 Bluebird Promises,没有返回值?

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:05 25 4
gpt4 key购买 nike

这个问题已经以多种方式提出,但并不那么简单。

如何重写这个 Promise.all 以便 promise1promise2 之前完全运行?

var promise1 = function() { .. lots of promise stuff };
var promise2 = function() { .. lots more promise stuff };

Promise.all([promise1, promise2]).then(function() {
log.info("ran promise1 & promise2");
});

Promise.all 并行运行 promise1 和 promise2。

最佳答案

您可以在并发选项设置为 1 的情况下使用 Promise.map。

var promise1 = function () {
return new Promise(function (resolve, reject) {
console.log("promise1 pending");
setTimeout(function () {
console.log("promise1 fulfilled");
resolve();
}, 1000)
})
};

var promise2 = function () {
return new Promise(function (resolve, reject) {
console.log("promise2 pending");
setTimeout(function () {
console.log("promise2 fulfilled");
resolve()
}, 50)
})
};

Promise.map([promise1, promise2], function (promiseFn) {
return promiseFn(); //make sure that here You return Promise
}, {concurrency: 1}); //it will run promises sequentially

//It logs
//promise1 pending
//promise 1 fulfilled
//promise2 pending
//promise 2 fulfilled

关于javascript - 按顺序运行 Bluebird Promises,没有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29546898/

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