async和await

一、async函数

async 函数就是 Generator 函数的语法糖。

二、async函数的优点

async 函数对 Generator 函数的改进,体现在以下三点。

(1)内置执行器。async 函数的执行,与普通函数一模一样,只要一行。


var result = asyncReadFile();

(2)更好的语义。async 表示函数里有异步操作,await 表示紧跟在后面的表达式需要等待结果。

(3)更广的适用性。 async 函数的 await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。

三、用法

同 Generator 函数一样,async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再接着执行函数体内后面的语句。

注意:

await 命令后面的 Promise 对象,运行结果可能是 rejected,所以最好把 await 命令放在 try...catch 代码块中;

await 命令只能用在 async 函数之中,如果用在普通函数,就会报错。

原文地址:https://www.cnblogs.com/paixiaoxin/p/13533580.html