异步函数也称为“asynac/await”(语法关键字),是ES6期约模式在ECMAScript函数中的应用。async/await是ES8新增的。这个特性让以同步方式写的代码能够异步执行。
2.asyncasync关键字用于声明异步函数。这个关键字可以用在函数声明、函数表达式、箭头函数和方法上。
async function foo(){};let bar=async function(){};let baz=async ()=>{};class Qux{ async qux(){};}使用async关键字可以让函数具有异步特征,但总体上其代码ngdzp是同步求值的。如果async关键字声明的函数没有使用return关键字或者await关键字,则依然会按照正常的执行顺序执行,如下面代码:
async function foo(){ console.log(1);}foo();console.log(2);//1//2如果异步函数使用了return关键字返回了值(如果没有return 则会返回undefined),这个值会被promise.resolve()包装成一个期约对象。异步函数始终返回期约对象。在函数外部调用这个函数可以得到它返回的期约:
async function foo() { console.log(1); return 3; //也可以直接返回一个期约对象也是一样 return