我重新阐述我的答案。我之前的理解是错误的。你可以将整个序列包装成一个返回Promise的函数,并在响应回调后进行解决:
function callSuperagent() {
return new Promise((resolve, reject) => {
return request
.post(my api call)
.send(params)
.end((err, res) => {
if(!err) {
console.log('get response', res);
resolve(res);
} else {
console.log('error present', err);
reject(err);
}
});
});
}
然后,您可以创建一个异步函数并等待它:
async function doSomething() {
try {
const res = await callSuperagent();
console.log('res', res);
console.log('and our friend:', res.resImpVariable);
} catch (error) {
throw new Error(`Problem doing something: ${error}.`);
}
}
doSomething();
如果您不编写doSomething
函数,代码将会像这样:
callSuperagent()
.then((res) => {
console.log('res', res);
console.log('and our friend:', res.resImpVariable);
})
.catch((err) => {
console.log('err', err);
})