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