使用 async Node.js 简化Javascript代码

2020年02月09日 阅读数:71
这篇文章主要向大家介绍使用 async Node.js 简化Javascript代码,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

async Node.js

async 是Javascript的扩展库。它能够简化Node.js异步操做的书写,使代码更容易被读懂,而不是面对多层的括号发疯。css

咱们可使用Node.js的包管理器npm直接安装它,在shell中输入:node

或者 更改package.json:git

而后运行 npm install. 安装完成后,在须要使用它的文件中加入:github

series

使用series能够简化流程运行的异步函数。
如今构想一个这样的场景:
我须要执行一组动做,喝水 -> 吃饭 -> 打开电脑web

一般的代码编写应该这样:shell

当异步调用超过两次嵌套,代码会变得不直观。使用async.series能够优化:npm

为了测试这个例子,我编写三个函数:json

接下来,咱们测试这些函数,在console中的显示是下面的代码:数组

这样看,咱们达到了相同的效果。咱们再测试出错的状况,将openMac函数更改为下面的代码:app

再测试这两个函数:

咱们能发现 series 的 result是一个数组。series中的callback被执行后,不管动做的结果是成功仍是失败,都会在result中添加一个数据。另外一方面,咱们也能够经过result中元素的数量,判断 series 执行了几个函数。

waterfall

另外一个有用函数是 waterfall 。它和 series 同样,能够简化流程运行的异步函数。不一样点是它能够在流程执行的过程当中传递参数。

例如,我须要在异步函数中返回一些饮品或食物的信息,我须要更改

而后添加:

每一次运行函数的回调结果都会传给下一个动做,最后的result与series不一样,是最后一次执行动做callback中传递的值。运行测试结果为:

而后再来测试出错的状况,更改:

再运行的结果是:

总结

使用 async node.js 能够将复杂的逻辑表现的更直观。但若是逻辑只有一次回调,就不建议使用async了,我认为这会无心义的增长一些运行的成本。

本篇博客出自阿修罗道,转载请注明出处,禁止用于商业用途:http://blog.csdn.net/fansongy/article/details/42156109 


上一篇: nodejs中async和await
下一篇: node.js async