作用:

将异步转为同步,其实有点语法糖,promise能实现的改为比较同步的方式表现。

用法:

两个关键字:

async:放在函数声明前,用于表示这个函数含有异步过程,且此函数必定返回promise对象

await:只能用于async声明了的函数里,如果await的对象是个promise,则等待其返回(这是同步的关键),如果是普通函数则没用

例子:

function selectAll() {
return new Promise((resolve, reject) => {
connection.query('SELECT * from table1;', function (error, results) {
if (error) throw error;
resolve(results[0]);
});
});
} async function test() {
let ret = await selectAll();
}

其中selectAll函数返回一个promise对象,而test中的ret将取得查询结果而不是一个promise对象!

如果没有用await,需要用then取得对象,现在直接取得。

捕获错误

而关于错误,如果promise中抛出错误,需要在await外用try...catch接。

关于nodejs中的async/await的更多相关文章

  1. [C#] .NET4.0中使用4.5中的 async/await 功能实现异

    好东西需要分享 原文出自:http://www.itnose.net/detail/6091186.html 在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framew ...

  2. 【TypeScript】如何在TypeScript中使用async/await,让你的代码更像C#。

    [TypeScript]如何在TypeScript中使用async/await,让你的代码更像C#. async/await 提到这个东西,大家应该都很熟悉.最出名的可能就是C#中的,但也有其它语言也 ...

  3. 在Silverlight中使用async/await

    现在 async/await 大行其道,确实,有了 async/await ,异步编程真是简单多了,个人觉得 async/await 的出现,给开发者还来的方便,绝不亚于当年 linq 的出现. 但要 ...

  4. 在现有代码中通过async/await实现并行

    在现有代码中通过async/await实现并行 一项新技术或者一个新特性,只有你用它解决实际问题后,才能真正体会到它的魅力,真正理解它.也期待大家能够多分享解一些解决实际问题的内容. 在我们遭遇“黑色 ...

  5. [C#] .NET4.0中使用4.5中的 async/await 功能实现异步

    在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framework 4.0中却无法使用.这时不免面临着抉择,到底是升级整个解决方案还是不使用呢? 如果你的软件还没发布出去 ...

  6. js循环中使用async/await踩过的坑

    最近写koa的时候遇见需要在循环中使用async/await的情况,当然第一反应就是直接上forEach,然后就直接翻车了... 直接上代码: function handleSql(val) { re ...

  7. 理解ES7中的async/await

    理解ES7中的async/await 优势是:就是解决多层异步回调的嵌套 从字面上理解 async/await, async是 "异步"的含义,await可以认为是 async w ...

  8. js中的async await

    JavaScript 中的 async/await 是属于比较新的知识,在ES7中被提案在列,然而我们强大的babel粑粑已经对它进行列支持! 如果开发中使用了babel转码,那么就放心大胆的用吧. ...

  9. .NET4.0中使用4.5中的 async/await 功能实现异步

    在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framework 4.0中却无法使用.这时不免面临着抉择,到底是升级整个解决方案还是不使用呢? 如果你的软件还没发布出去 ...

随机推荐

  1. golang使用Nsq(转)

    为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯.一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golan ...

  2. unity WegGL 调用js

    test.jslib文件,必须放到Assets/Plugins下,这里是:Assets/Plugins/WebGL mergeInto(LibraryManager.library, { Hello: ...

  3. secureCRT工具下载和安装

    本文主要提供secureCRT软件下载和安装操作指导,节约软件查找和安装时间. 使用环境 32位Windows系统 软件下载 secureCRT软件和注册机下载:secureCRT 安装步骤和注意事项 ...

  4. [C语言]数据类型与计算

    ------------------------------------------------------------------------------------------------- 实际 ...

  5. python第三步骤(pygame)

    1:先安装homebrew(类似于yum /apt-get为什么需要它呢,因为pip安装的时候需要很多的包的依赖,sdl什么的), 2:pip 安装pygame 我讨厌的环境变量问题 然后 通过的是 ...

  6. winform clickonce在线安装

    转 http://swanmsg.blog.sohu.com/162994305.html

  7. MVC异步控制器加载一个网页的所有内容

    public void PageAsync() { AsyncManager.OutstandingOperations.Increment(); WebRequest req = WebReques ...

  8. 学习JS的心路历程-类型

    前言 之前学JS时候都是靠着谷狗一路跌跌撞撞的学过来,从来没有去翻过MDN的文件,导致留了许多技术债给自己. 最近有幸遇到一位前辈并开始从头学JS,前辈表示学程序不看文件是想作死自己?于是我的第一份功 ...

  9. SPSS-聚类分析

    聚类分析(层次聚类分析(Q型聚类和R型聚类).快速聚类分析) 聚类分析的实质:是建立一种分类方法,它能够将一批样本数据按照他们在性质上的亲密程度在没有先验知识的情况下自动进行分类.这里所说的类就是一个 ...

  10. tomcat架构分析(valve机制)

    关于tomcat的内部逻辑单元的存储空间已经在相关容器类的blog里阐述了.在每个容器对象里面都有一个pipeline及valve模块. 它们是容器类必须具有的模块.在容器对象生成时自动产生.Pipe ...