在node命令行里面,如何使用await关键字?
发布于 作者:苏南大叔 来源:程序如此灵动~
话说,从node8、node9系列,全面支持了await和async,这对于广大开发者来说,不得不说是个福音。这也是node做出的让步,await和async的横空出世,让co.js这样的源码失去了存在的意义。在thinkjs框架中,await字样是满屏幕的出现,而async似乎是个隐藏的东东,很少看到。

本文测试环境:node@9。目前,node全面支持了await和async,并不需要额外安装任何特色库。request-promise仅仅是龙套演员。
范例代码
在thinkjs里面,写的好好的await相关语句,如果想改在命令行里面执行一下的话,全部报错。看来这个await还不是我们所想像的那样。也许有人会怀疑:是不是命令行下面,node8/9系列是不是并不支持await,并不是这样的。因为,await的用法是特殊的,正如它迷一般的存在意义一样。
先安装request-promise:
npm install request-promise --save范例代码test.js如下:
var request = require('request-promise');
;(async(plus) => {
var body = await request.get('https://www.baidu.com/');
console.log(body,plus)
})("params");注意看这个代码中的写法,这个是重点,这种非框架类的单独js,必须这样才能使用await。
下面的是命令行里面执行await的注意事项:
await必须放在一个async函数里面。await后面的对象必须是个promise,表示等待promise的返回值,再继续执行。mac系统中,第一个字符必须是英文分号。(这条很雷人吧?莫名其妙错误的时候,试试这个吧)。而win中,似乎没有这个问题。

可能的错误
不写await的话,得到的就是一个promise对象,而不是预想中的html字符串。

写了await的话,不放在async里面,也是不符合语法结构的。

结论
本文友情出镜的npm包是request-promise,记得npm install一下,才能使用哦。
更多由苏南大叔带来的node相关的经验文章,请点击这里查看:https://newsn.net/tag/node/ 。