我正在学习NodeJS。我发现真正令人烦恼的一件事是在调试和/或随意浏览各种库的接口时使用交互式控制台中的promise。工作流程正常;调用一些库做一些工作,等待结果,在结果周围四处查看,以了解其实际行为和外观。
例如(仅举例来说),我想交互式检查从Jimp返回的图像数据结构。我发现自己是从控制台执行此操作的:
const Jimp = require('jimp');
const fs = require('fs');
let data = fs.readFileSync('path/to/my/test/images')
let image = null
Jimp.read(data).then((result,error) => { image = result; });
// Work with image here ...
这个样板令人讨厌写..我想我错过了一个把戏。有没有更方便的解决方法?可以设置一项设置,或者可以加载一个库吗?
我宁愿这样做:
...
let image = await Jimp.read(data);
// Work with image here ...
但这给出了“ SyntaxError:await仅在异步函数中有效”。否则,也许是这样:
...
let image = resolveMe(Jimp.read(data))
// Work with image here ...
P.S。 “异步/等待”不是此问题的答案。为了评估异步功能,您必须将控制权交还给事件循环,并且您不能在当前AFAIK的 interactive 提示符下执行该操作。