本文共 1211 字,大约阅读时间需要 4 分钟。
Node.js 7.6正式默认支持async/await
功能,并能够使低内存设备获得更出色的性能。
Node 7.6对async/await
的支持来自于将(Chromium JavaScript引擎)升级至版本5.5。这意味着async/await
不再是实验性功能,使用它时无需指定--harmony
参数,此参数开启那些几乎已完成但被V8团队认为还不稳定的功能。
Async/await
的主要益处是可以避免(callback hell)问题,该问题源于把一系列异步操作嵌套于它们各自的回调函数里。
下面代码演示了如何使用回调函数来处理两个异步操作:
\\\function asyncOperation(callback) {\ asyncStep1(function(response1) {\ asyncStep2(response1, function(response2) {\ callback(...);\ });\ });\}\\\
使用async/await
可以简化代码,使代码看起来就像同步操作:
\async function asyncOperation(callback) {\ const response = await asyncStep1();\ return await asyncStep2(response);\}\\\
解决回调地狱的另一种方法是使用Promises,它是JavaScript里存在很久的一个特性。使用Promises,上面的例子则变成:
\\\function asyncOperation() {\ return asyncStep1(...)\ .then(asyncStep2(...));\}\\\
但是在一些更为复杂的场景中,。
\\V8 5.5还对堆大小和区域使用(zone usage)做出了若干改进。与V8 5.3相比,这些改进能使低内存设备的内存占用量降低多达35%。
\\Node 7.6还有另一些值得注意的改进:
\\\\\
- 基于新调试器协议
node --inspect
,旧CLI调试器node debug
。在未来V8版本中,将只支持node --inspect
。 \\- 支持
file
:相关协议已经fs
,因此你可以写成fs.readFile(URL('file:///C:/path/to/file');, (err, data) =\u0026gt; {});
\
除了V8 5.5外,Node 7.6还包括了其它一些已经更新的依赖,比如跨平台的异步I/O库 1.11和 1.2.11。
\\查看英文原文:
\\感谢对本文的审校。
\给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们。
转载地址:http://ogjax.baihongyu.com/