Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何等待异步调用的响应_Javascript_Node.js_Request - Fatal编程技术网

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的更多信息