在Node.js中异步等待

问题描述 投票:-2回答:2

如何在Node.js中使用异步Await作为使用它的函数以及request.get()函数如何返回用户将等待的Promise?

到目前为止,我已尝试过下面的代码,并在下面给出了解释

async function fun1(req, res){
  let response = await request.get('http://localhost:3000');
    if (response.err) { console.log('error');}
    else { console.log('fetched response');
}

上面的代码基本上要求运行代码的javascript引擎等待request.get()函数完成,然后再转到下一行执行它。 request.get()函数返回一个用户将等待的Promise。在异步/等待之前,如果需要确保函数以所需的顺序运行,即一个接着一个,将它们一个接一个地链接或注册回调。

node.js
2个回答
-1
投票
async function fun1(req, res){
  let response = await request.get('http://localhost:3000');
    if (response.err) { console.log('error');}
    else { console.log('fetched response');
}

-1
投票

request包不使用退货承诺。使用包装request-promiserequestPromise包。

您可以像以下一样使用它:

const rp = require('request-promise')

async function getSomeData() {
  try {
    const url = 'http://some.com'
    // waits for promise to resolve
    const data = await rp(url)
    // data contains resolved value if successfull
    // continue some other stuff
    ...
  } catch (e) {
    // handle error if error occurred
    console.error(e)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.