Javascript 如何等待异步调用的响应
这可能是一个非常基本的问题,但在线解决方案都没有帮助。 我正试着打一个邮寄电话Javascript 如何等待异步调用的响应,javascript,node.js,request,Javascript,Node.js,Request,这可能是一个非常基本的问题,但在线解决方案都没有帮助。 我正试着打一个邮寄电话 /* eslint-disable no-undefined */ let req = require('request'); function mutate(body) { return body; } function post(request) { let config = request.server.app.config; let payload = request.payload
/* eslint-disable no-undefined */
let req = require('request');
function mutate(body) {
return body;
}
function post(request) {
let config = request.server.app.config;
let payload = request.payload;
let imageFile = '';
let options = {
method: 'POST',
url: `${config.get('api.baseUrl')}/imageUpload`,
headers: {
'Accept': '*/*',
'cache-control': 'no-cache'
},
formData:
{
file: imagefile
}
};
return req(options, (error, response, body) => {
if (error) {
throw new Error(error);
}
request.log(response);
return body;
});
}
module.exports = {
post
};
正在打印的响应是正确的。
在实际调用完成之前返回该值。
返回实际响应的正确方法是什么以避免您可以使用的问题 1) 许诺 2) 异步并等待 请尝试按照以下步骤更改您的功能
async function post (request) {
let config = request.server.app.config;
let payload = request.payload;
let imageFile = '';
let options = {
method: 'POST',
url: `${config.get('api.baseUrl')}/imageUpload`,
headers: {
'Accept': '*/*',
'cache-control': 'no-cache'
},
formData:
{
file: imagefile
}
};
return await req(options, (error, response, body) => {
if (error) {
throw new Error(error);
}
request.log(response);
return body;
});
}
您可以在此处查看有关async/Wait和Promissions的更多信息