嗨,我刚刚开始学习异步函数,我想问一下所有异步函数完成后是否有一种方法可以在.then()中执行代码?
print1()和print2()是一些异步执行速度更快的函数,但必须同步调用它们。这意味着我必须通过异步函数-> print()来调用它们。
async function print()
{
try {
var print1 = await printFor1();
console.log('print1 - Finished');
var print2 = await printFor2();
console.log('print2 - Finished');
} catch (error) {
console.error(error);
}
}
function printFor1(){
return new Promise((resolve,reject) => {
try {
setTimeout(()=>{
console.log('print1');
resolve();
},2000)
} catch (error) {
console.error(error);
reject();
}
})
}
function printFor2(){
return new Promise((resolve,reject) => {
try {
setTimeout(()=>{
console.log('print2');
resolve();
},3000)
} catch (error) {
console.error(error);
reject();
}
})
}
print().then(console.log('End'));
答案 0 :(得分:1)
您需要在回调中移动console
。
print().then(() => { console.log('End') });
答案 1 :(得分:0)
您的代码中有1个小错误,其他都没问题。
更改此
print().then(console.log('End'));
到
print().then(() => console.log('End'));