kao2 async/await使用教程


Koajs入门视频教程在线学习地址https://www.bilibili.com/video/BV1xm4y1c7zr/?p=1

Koajs入门视频教程网盘下载地址https://pan.baidu.com/s/1QN_XkXRXmIw6V7HevntBQQ 提取码:abcd


async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。

简单理解:
async是让方法变成异步。
await是等待异步方法执行完成。

详细说明:

async是让方法变成异步,在终端里用node执行这段代码,你会发现输出了Promise { ‘Hello async’ },这时候会发现它返回的是Promise。

async function testAsync(){
return 'Hello async';
}
const result = testAsync();
console.log(result);


PS E:\code\BXShop> node async.js
Promise { 'Hello async' }


await 在等待async方法执行完毕,其实await等待的只是一个表达式,这个表达式在官方文档里说的是Promise对象,但是它也可以接受普通值。 注意:await必须在async方法中才可以使用因为await访问本身就会造成程序停止堵塞,所以必须在异步方法中才可以使用
function getData(){
return 'zhangsan';
}
async function testAsync(){
return 'Hello async';
}


async function test(){
const v1=await getData();
const v2=await testAsync();
console.log(v1,v2);
}
test();
async/await同时使用
async 会将其后的函数(函数表达式或 Lambda)的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。
function findData() {
return new Promise(resolve => {
setTimeout(() => resolve("long_time_value"), 1000);
});
}

async function test() {
const v = await findData();
console.log(v);
}

test();