新版的 Node 7.x.x 有非常有用的更新,那就是支持了 --harmony-async-await。这样就不用依赖 babel 来使用 async/await 特性了。
n
它本身是一个 Node 模块,叫做 n,它是由 TJ 大大开发的,强调简单化的版本管理工具:
安装 n
要安装 n 非常简单,它本身是一个 NPM 模块,因此:
npm -g install n
使用和设置
要使用 n 安装特定版本的 node,只需要如下命令:
n stable #安装最新的稳定版
n lts #安装最新的 LTS 版
n 6.9.0 #安装特定的 v6.9.0 版本
安装完成多个版本后,直接输入不带参数的 n 命令,会出现一个已安装版本的列表:
选择版本
用键盘上下键选择版本,然后回车,就可以切换默认 Node 版本。
直接启动不同版本的 Node
假如我们将默认的 Node 版本设置为 6.10.0 了,而我们要使用 7.6.0 启动某个应用,也非常简单,只需要:
n use 7.6.0 index.js
于是,我们可以这么用:
async.js
'use strict'
let randomDelay = () => new Promise(function(resolve){
var delay = Math.round(Math.random() * 1000);
setTimeout(function(){
console.log('delay ' + delay + ' ms');
resolve(delay);
}, delay);
});
async function main(){
await Promise.all([randomDelay(), randomDelay()]);
console.log('pass');
await randomDelay();
}
main();
n use 7.6.0 async.js
你会看到类似下面这样的输出结果,说明我们不需要 babel,直接可以用 Node 支持 async/await 了。
delay 252 ms
delay 964 ms
pass
delay 536 ms
最后,我们可以创建一个快捷的命令:
echo alias node7="\"n use 7.6.0 --harmony-async-await\"" >> ~/.bashrc
source ~/.bashrc
这样我们就可以愉快地使用 node v7.x.x 运行我们的 js 了:
node7 async.js
Comments