与请求一起使用asynchronous

所以我最近跳上了asynchronous/等待列车,试图让我仍然抓住一些概念。

我已经开始尽可能多地切换到asynchronous/等待,而那些不提供它的软件包,我发现了诺言版本。

无论如何,我偶然发现了request-promise-native模块,就像请求一样,但是使用了promise,我敢肯定你可以看到。

我一直在尝试使用asynchronous/等待它,它的工作,但我不知道我使用它的权利。 实际上,我甚至不确定它是否比使用诺言有优势,但是我正在转换的这个特定的函数有很多callback,所以我试图保持标签的数量在最小。

 testFunction: async (param) => { let results; try { results = await request(requestOptions); } catch (e) { return (e); } // Do stuff with results 

现在这个工作,我得到了预期的结果,但我的问题是1.这是甚至正确的方式来使用asynchronous/等待和2.是否有任何利益,这对图书馆提供的标准承诺呢?

  1. 你确实正在使用async/await 。 函数定义必须在前面进行async ,和你一样, await运算符应该在返回Promise的代码之前,就像你所做的一样。 在try/catch包装await也是正确的,因为如果Promise被拒绝, awaitexpression式将抛出被拒绝的值( 参见MDN )。
  2. 好处是出现同步的代码,这使得更容易遵循,理解和推理。