我有两个具有不同处理时间的函数,比如说 one() 需要 1 秒,two() 需要 0.3 秒。 我尝试先运行函数 one(),然后使用 Promise 执行函数 two()。在我的代码中,我将 two() 设置为已解决,但实际上它在 one() 完成之前运行函数 two()。
抱歉我的英语不太好,我希望你能理解我的上下文
main();
function main() {
let promise = new Promise(function(resolved) {
one();
resolved();
});
promise.then(two());
}
function one() {
setTimeout(() => {
console.log("ONE");
}, 1000);
}
function two() {
setTimeout(() => {
console.log("TWO");
}, 300);
}
您先运行一个,在一个之前记录两个,因为方法一需要更多超时。
您可以使用 async/await 来确保在执行函数二之前解决其中一个问题。
main();
async function main() {
await one();
two();
}
function one() {
return new Promise(resolve => {
setTimeout(() => {
console.log("ONE");
resolve();
}, 1000);
});
}
function two() {
setTimeout(() => {
console.log("TWO");
}, 300);
}