使用异步请求

时间:2017-11-11 21:35:25

标签: node.js async-await

所以我最近跳上了异步/等待列车,试图让我仍然掌握一些概念。

我已经开始尽可能多地切换到异步/等待和不提供它的软件包但我找到了承诺版本。

无论如何,我偶然发现了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。对于库提供的标准承诺,这有什么好处?

1 个答案:

答案 0 :(得分:3)

  1. 您确实正确使用async。函数定义必须与await完全一样,并且await运算符应该在返回Promise的代码之前,就像你已经完成的那样。将try/catch包裹在await中也是正确的,因为如果拒绝承诺,{{1}}表达式将抛出被拒绝的值(see MDN)。
  2. 好处是显示同步的代码,这使得更容易理解和理解。