02Koa异步处理Async 、Await和Promise 的使用(非常重要)

Async、Await是两种非常重要的方法。async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async
用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
简单来说:
async是让方法变成异步形式。
await是等待异步方法执行完成,将异步方法变为同步,所以await使用会受到约束,需要在async方法下使用。
接下来一个一个详细解释一下这两种方法。

一、async
让方法变成异步,执行下面node代码时,会输出Promise{‘Hello async’},返回为Promise。
02Koa异步处理Async 、Await和Promise 的使用(非常重要)_第1张图片
在这里插入图片描述
注意:await 必须在 async 方法中才可以使用因为 await 访问本身就会造成程序停止堵塞,所以必须在异步方法中才可以使用。
await 在等待 async 方法执行完毕,其实 await 等待的只是一个表达式,这个表达式在官方
文档里说的是 Promise 对象,但是它也可以接受普通值。
02Koa异步处理Async 、Await和Promise 的使用(非常重要)_第2张图片
02Koa异步处理Async 、Await和Promise 的使用(非常重要)_第3张图片
async/await 同时使用
async 会将其后的函数(函数表达式或 Lambda)的返回值封装成一个 Promise 对象,而
await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。
也就是说await需要在async方法中才能有效。
02Koa异步处理Async 、Await和Promise 的使用(非常重要)_第4张图片

你可能感兴趣的:(技术,Koa框架)