async函数
一.什么是async函数 1. 概念 async函数是co(Generator)函数的语法糖。 语法是将Generator函数的*替换为async; yield替换为await; var fnName = async function() { let result = await Promise.resolve(1); console.log(result); //1 } fnName(); // 相当于 const co = require('co'); co(function* fnName() { let result = yield Promise.resolve(1); console.log(result); //1 }) async函数相当于执行器+Generator函数,原理如下: async function fn() { //.... } // 模拟源码实现 function fn() { // run+Generator--等同于co + Generator return run(function* (){ }) } function run(fn) { return new Promise((resolve,reject) => { const gen = fn(); function next(nextFn) { let next; try { next