如果您只想延迟日志,则可以按照@Daniel Rodríguez Mezaresponse
的说明添加参数。
但是,如果您想延迟response
任何一个承诺promiseOne
,或者promiseTwo
您应该setTimeout(() => resolve("Hello"), 300);
在各自的承诺中使用,如下所示。也不要setTimeout
在里面使用Promise.All
。
根据OP 的评论,我已经更新了解决resolve
promiseTwo
3 seconds
后的答案promiseOne
。
在这里,我分配resolve
了3 秒后在内部使用的promiseTwo
全局变量。resolvePromiseTwo
promiseOne
resolve
promiseTwo
注意我已经使用.then
afterpromiseOne
并且promiseTwo
只是为了验证output
. 你可以省略两者。
let resolvePromiseTwo = null;
const promiseOne = new Promise(function(resolve, reject) {
resolve("Good Morning")
setTimeout(() => resolvePromiseTwo("Hello"), 3000);
}).then(res => {
console.log('promiseOne resolved');
return res;
});
const promiseTwo = new Promise(function(resolve, reject) {
resolvePromiseTwo = resolve;
}).then(res => {
console.log('promiseTwo resolved');
return res;
});
Promise.all([promiseOne, promiseTwo]).then(function(response) {
console.log('Promise.all');
console.log(response);
});