js async/await

async await

基本上是Generator、yield的一个封装(实际也就是通过Promise实现)。async相当于那个*,await相当于那个yield,只不过await会进行一些特殊处理

async function t(){
    var a = new Promise(
        function (resolve, reject) {
            console.log(1);
            resolve(9);
            console.log(2);
        })
    var b = new Promise(
        function (resolve, reject) {
            console.log(3);
            resolve(8);
            console.log(4);
        })
    console.log(5);
    b=await b;
    a=await a;
    console.log(b);
    console.log(a);
    console.log(6);
}

t();
console.log(7);

输出为1 2 3 4 5 7 8 9 6。主要是最后几个输出为8 9 6。因为执行到await时,会立刻跳出当前async函数,待cpu空闲后回来打印b,a,6这几个值。
1.await关键字必须在async函数内或外部全局代码中
2.async必定返回一个Promise对象。异步函数的返回值value,最终变为Promise.resolve(value)(没有返回值时value===undefined);函数内的throw,立即变为Promise.reject(value)返回

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一. Callback (回调函数) 1.定义:把函数当作变量传到另一个函数里,传进去之后执行甚至返回等待之后的...
    hutn阅读 1,654评论 0赞 2
  • 含义 async函数是Generator函数的语法糖,它使得异步操作变得更加方便。 写成async函数,就是下面这...
    oWSQo阅读 2,083评论 0赞 2
  • async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是...
    huilegezai阅读 1,382评论 0赞 6
  • 最近在迭代优化项目,发现自己代码中很多异步的请求,写的很混乱,不清晰。之前也有听说过一些JS处理异步回调的方法,但...
    天降男神阅读 2,210评论 0赞 4
  • async/await: 最简洁地写串行的异步操 我们知道JS是单线程的,IO操作都被设计为异步的(非阻塞的),对...
    davidhuangdw阅读 8,810评论 0赞 2

友情链接更多精彩内容