async 与 await 的用法
async:
async是作为关键字放在函数的前面,表示该函数是一个异步的函数,也就意味着函数不会阻塞后面的代码执行。
async函数返回一个promise对象
async function test() {
return 111;
}
console.log(test());
/*
*[[Prototype]]: Promise
*[[PromiseState]]: "fulfilled"
*[[PromiseResult]]: 111
**/
// 需要调用并返回值得话就得使用.then()方法
test.then(res=>console.log(res)) // 111
await:
代码先执行await后面的代码并且有返回值之后才会执行下面的代码,有着同步效果的
- await等待代码执行完并有返回值
- await关键字不能单独使用,需要async方法中使用
- 知道await后面有返回的值,会阻塞代码执行
function test() {
return new Promise((resolve,reject)=>{
setTimeout(function(){
console.log("test");
resolve();
}, 1000);
})
}
async function testAwait(){
await test()
console.log("111");
return 123;
// 输出顺序:test,111
// 不使用await输出顺序:111 , testWait
}
console.log(testAwait())