JavaScript await函数
写前端js的时候遇到的一个问题:因为自己写的函数先操作了DOM的改动,结果后面该系统本身的一些函数又覆盖了我先前的改动,很麻瓜.....决定让它的函数先执行完成再运行自己的DOM改动。
await描述:
- await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行 async function。
- 若 Promise 处理异常(rejected),await 表达式会把 Promise 的异常原因抛出。
- 另外,如果 await 操作符后的表达式的值不是一个 Promise,则返回该值本身。
例子:
如果一个 Promise 被传递给一个 await 操作符,await 将等待 Promise 正常处理完成并返回其处理结果。
async function waitFunction(){
const x = await after1Second(10);
alert("Hello World!");//延迟后执行的代码块
}
};
function after1Second(x){
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 1000); //1秒 = 1000
});
}
参考网址