ES6中的 async/await 是什么呢?

async/await 是什么?


async函数,就是 Generator函数的语法糖,它建立在Promises上,并且与所有现有的基于Promise的API兼容。

1、Async— 声明一个异步函数 ( async function someName(){...})

  • 自动将常规函数转换成Promise,返回值也是一个Promise对象
  • 只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数
  • 异步函数内部可以使用 await

2、Await— 暂停异步的功能执行 ( var result = await someAsyncCall()) 😉

  • 放置在Promise调用之前,await强制其他代码等待,直到Promise完成并返回结果
  • 只能与Promise一起使用,不适用与回调
  • 只能在async函数内部使用

What are the asyncand await?


The asyncfunction, it's a syntactic sugar of Geneartorfunction, it is built on Promise, and is compatible with all existing Promise-based API.

1、The async-- declare a async function ( async function someName(){...})

  • Automatically convert regular functions to Promise, and the return value is also a Promiseobject.
  • Only after asynchronous operation inside asyncfunction is executed, then execute the callback function specified by thenmethod.
  • we can use awaitinseide asynchronous function

2、The await-- Paused the asnychronous function execution ( var result = await someAsyncCall())

  • Placed before the PromiseCall, the awaitforced other codes to wait until the Promisecompletes and return the result.
  • Can only be used with Promisetoghter, it's not suitable for callback
  • Can only be used inside asyncfunction
原文链接:segmentfault.com

上一篇:leetCode 每天一题 简单之路-罗马数字
下一篇:eslint-plugin-only-warn

相关推荐

  • 🙋Hanjst汉吉斯特升级:+showImageAsync及性能改进等

    自2019年元旦🙋Hanjst汉吉斯特 模板语言及其编译引擎发布,已经过去一年多了。 这期间随着 🙋Hanjst汉吉斯特 的推广应用,我们也陆续发布了如下一些更新内容: 🛠️Hanjst/汉吉...

    3 个月前
  • 🔥 Promise|async|Generator 实现&原理大解析 | 9k字

    笔者刚接触async/await时,就被其暂停执行的特性吸引了,心想在没有原生API支持的情况下,await居然能挂起当前方法,实现暂停执行,我感到十分好奇。好奇心驱使我一层一层剥开有关JS异步编程的...

    4 个月前
  • 领略原生 javascript es6~es10 的魅力

    图片描述(https://img.javascriptcn.com/f3663fe101c5d4062fda74e1ae5e25d6 "图片描述") 作为前端开发工程师,盲目追逐框架似乎有点舍本逐末...

    10 个月前
  • 领略原生 JavaScript ES6~ES10 的魅力

    图片描述(https://img.javascriptcn.com/98bc3ace8fade84c91d94f42b7cc5301 "图片描述") 作为前端开发工程师,盲目追逐框架似乎有点舍本逐末...

    10 个月前
  • 面试题:没有es6老项目,如何用jq解决异步的问题?

    我们都知道es6提供了promise异步写法,但是大部分的公司都是jq写的,那我们如何用Jq来写和promise异步一样的写法呢?这个知道的人不多下面我们就来写写把 注意: 1 JQ 1.5以上 ...

    2 年前
  • 面试题3:ES5、ES6两种方式实现继承

    写一个类Person,拥有属性age和name,拥有方法say(something)再写一个类Superman,继承Person,拥有自己的属性power,拥有自己的方法fly(height) ...

    3 个月前
  • 面试深入一、ES6模块化、安装和打包

    开发环境已经普及使用 浏览器环境却支持不好(需要开发环境编译) 内容很多,重点了解常用语法 面试:开发环境的使用 重点语法的掌握 问题 模块化如何使用...

    2 年前
  • 面试官: 说说你对async的理解

    大家好,我是小雨小雨,致力于分享有趣的、实用的技术文章。 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步。 分享不易,希望能够得到大家的支持和关注。

    4 个月前
  • 需要ES6中的Iterator迭代器?

    本文原文链接专门说一说Iterator迭代器的原因是,为后面async/await应用原理的文章做铺垫,因为async/await是由GeneratorPromise共同构成,而其中的Generato...

    2 个月前
  • 阮一峰ES6全面回顾

    9月抽空重新回顾了下ES6所有知识点,整个回顾过程既惊喜又感慨,感慨开发这么久好像真的没有好好的静下心去读一本好的书,大多情况下只是在使用的时候用到了,不熟悉或者感兴趣再去走马观花一通,感慨之余也发...

    9 个月前

官方社区

扫码加入 JavaScript 社区