所以我最近跳上了异步/等待列车,试图让我仍然掌握一些概念。
我已经开始尽可能多地切换到异步/等待和不提供它的软件包但我找到了承诺版本。
无论如何,我偶然发现了request-promise-native
模块,它就像请求一样,但是我会确保你能看到它,并使用了承诺。
我一直在尝试使用async / await,但它确实有效,但我不确定我是否正确使用它。事实上,我甚至不确定它是否比使用承诺更有优势,但我转换的这个特殊功能有很多回调,所以我试图将标签数量保持在最低限度。
testFunction: async (param) => {
let results;
try {
results = await request(requestOptions);
} catch (e) {
return (e);
}
// Do stuff with results
现在这有效,我得到了理想的结果,但我的问题是1.这是否是使用async / await和2的正确方法.2。对于库提供的标准承诺,这有什么好处?
答案 0 :(得分:3)
async
。函数定义必须与await
完全一样,并且await
运算符应该在返回Promise的代码之前,就像你已经完成的那样。将try/catch
包裹在await
中也是正确的,因为如果拒绝承诺,{{1}}表达式将抛出被拒绝的值(see MDN)。