使用async/await来强制两个js函数的先后执行顺序

await等待的东西分两种情况,promise和非promise,遇到promise会阻塞下边的代码,遇到非promise的会直接根据情况进行执行。

所以想要让两个函数必须保证先后执行,先执行的函数得保证返回promise。

// 给先执行的函数加promise返回值
function test1() {
    return new Promise(resolve => {
        // 存在异步情况
        setTimeout(() => {
            console.log(111);
            resolve();
        }, 2000)
    })
}
function test2(res) {
    setTimeout(() => {
        console.log(222);
    }, 1000);
}
async function test3() {
    await test1();
    await test2();
}
test3();//输出111、222

 

posted @ 2021-09-26 13:39  琴时  阅读(1496)  评论(0编辑  收藏  举报