await 强制后面点代码等待,直到Promise对象resolve,得到resolve的值作为await表达式的运算结果
bash
let sArr = ['没有数据'];
function timeout(ms) {
return new Promise((resolve, reject) => {
console.log('我已经调用了');
setTimeout(() => {//模拟耗时的操作,比如从数据库取数据,取出来后才能用
//console.log('我需要等待');
this.sArr =['我获取到数据了'];
//reject('error');
resolve(this.sArr);
}, 5000); //reject模拟出错,返回error
//resolve('success');
});
}
async function asyncPrint() {
try {
console.log('start');
await timeout(); //可以去掉await 试试看输出结果
//console.log(abc);
//console.log('end');
console.log(this.sArr);
} catch(err) {
console.log(err); //这里捕捉错误error
}
}
asyncPrint();
console.log('我继续执行,不受影响');
JS中console的几种方法
10 个关于 Promise 和 setTimeout 知识的面试题,通过图解一次说透彻
js异步编程 setTimeout、Promise、Async/Await 的区别