如何用ES7中的Async和Await进行异步编程
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家介绍如何用ES7中的Async和Await进行异步编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Async/Await基本规则async 表示这是一个async
千家信息网最后更新 2026年11月04日如何用ES7中的Async和Await进行异步编程
这篇文章给大家介绍如何用ES7中的Async和Await进行异步编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Async/Await基本规则
async 表示这是一个async函数,await只能用在这个函数里面。
await 表示在这里等待promise返回结果了,再继续执行。
await 后面跟着的应该是一个promise对象(当然,其他返回值也没关系,只是会立即执行,不过那样就没有意义了…)
一个Async/Await例子
Async/Await应该是目前最简单的异步方案了,首先来看个例子。
这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。
var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(function () { resolve(); }, time); })};var start = async function () { // 在这里使用起来就像同步代码那样直观 console.log('start'); await sleep(3000); console.log('end');};start();控制台先输出start,稍等3秒后,输出了end。
获得返回值
await等待的虽然是promise对象,但不必写.then(..),直接可以得到返回值。
var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(function () { // 返回 'ok' resolve('ok'); }, time); })};var start = async function () { let result = await sleep(3000); console.log(result); // 收到 'ok'};捕捉错误
既然.then(..)不用写了,那么.catch(..)也不用写,可以直接用标准的try catch语法捕捉错误。
var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(function () { // 模拟出错了,返回 'error' reject('error'); }, time); })};var start = async function () { try { console.log('start'); await sleep(3000); // 这里得到了一个返回错误 // 所以以下代码不会被执行了 console.log('end'); } catch (err) { console.log(err); // 这里捕捉到错误 `error` }};循环多个await
await看起来就像是同步代码,所以可以理所当然的写在for循环里,不必担心以往需要闭包才能解决的问题。
..省略以上代码var start = async function () { for (var i = 1; i <= 10; i++) { console.log(`当前是第${i}次等待..`); await sleep(1000); }};值得注意的是,await必须在async函数的上下文中的。
..省略以上代码let 一到十 = [1,2,3,4,5,6,7,8,9,10];// 错误示范一到十.forEach(function (v) { console.log(`当前是第${v}次等待..`); await sleep(1000); // 错误!! await只能在async函数中运行});// 正确示范for(var v of 一到十) { console.log(`当前是第${v}次等待..`); await sleep(1000); // 正确, for循环的上下文还在async函数中}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
关于如何用ES7中的Async和Await进行异步编程就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
错误
代码
函数
内容
帮助
循环
编程
上下
上下文
不用
例子
对象
更多
同步
示范
输出
不错
直观
理所当然
没关系
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
伟宏互联网科技
深圳九邦互联网科技有限公司
易互联网科技有限公司
互联网科技的英文
丰台科技园 互联网公司
互联网科技中介
坤平互联网科技
链环科技传统企业怎么转型互联网
互联网金融科技展
科技类公司包括互联网吗
电子商务与互联网科技的关系
互联网科技实习生岗位
富国互联网金融科技混合基金
互联网科技快讯热点
本届互联网大会上的黑科技
广州互联网高科技取餐柜
互联网科技包装股
互联网时代科技型公司的机会
普陀区互联网教育科技管理办法
小牛互联网科技有限公司地址
中智农互联网科技
有木互联网科技
重庆互联网医院沙龙医盟信息科技
荆州市昕露互联网络科技有限公司
互联网公司黑科技创始人
晋城互联网科技
南博望互联网科技有限公司
为客找房互联网科技公司怎么样
九思连强互联网电子科技有限公司
利用互联网等科技手段