我有 3 个函数,它们都需要特定的时间来执行,然后当它们全部完成时,我需要触发某个函数。使用以下代码,我能够使用单个函数获得预期结果,但使用多个函数时我无法做到这一点,请帮助我编辑此代码以等待我的3个函数 然后控制台他们返回的数据。
var promise = new Promise(function(resolve, reject)
{
setTimeout(function()
{
resolve('hello world');
}, 2000);
});
promise.then(function(data)
{
console.log(data);
});
最佳答案
Javascript 有一个内置方法,等待您 promise 解决的所有问题。
Promise.all([promise1, promise2, promise3]).then(function(values) {
console.log(values);
});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
对于你的情况:
const promiseFunction = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
};
const promise1 = promiseFunction();
const promise2 = promiseFunction();
const promise3 = promiseFunction();
Promise.all([promise1, promise2, promise3])
.then((result) => {
console.log(result[0]);
console.log(result[1]);
console.log(result[2]);
})
结果是每个 Promise 返回的值的数组。
关于javascript - 如何实现 3 个函数的 Javascript Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859756/