如何在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。在异步/等待之前,如果需要确保函数以所需的顺序运行,即一个接着一个,将它们一个接一个地链接或注册回调。
async function fun1(req, res){
let response = await request.get('http://localhost:3000');
if (response.err) { console.log('error');}
else { console.log('fetched response');
}
request
包不使用退货承诺。使用包装request-promise
和request
的Promise
包。
您可以像以下一样使用它:
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)
}
}