Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 Node JS,如何使用http.request POST到外部var?_Javascript_Node.js - Fatal编程技术网

Javascript Node JS,如何使用http.request POST到外部var?

Javascript Node JS,如何使用http.request POST到外部var?,javascript,node.js,Javascript,Node.js,我正在尝试返回请求外部的HTTP.request结果 这是我的密码: function repromptFunction() { var http = require('http'); var options = { host: 'api.domain.com', port: 80, path: '/path/file.json', method: 'POST' }; http.request(o

我正在尝试返回请求外部的HTTP.request结果

这是我的密码:

function repromptFunction() {
    var http = require('http');

    var options = {
        host: 'api.domain.com',
        port: 80,
        path: '/path/file.json',
        method: 'POST'
    };

    http.request(options, function(res) {
        res.setEncoding('utf8');
        var data = '';
        res.on('data', function (chunk) {
            data += chunk;
        });
        res.on('end', function() {
            var recv = JSON.parse(data);
            var repromptText = recv.forecast.txt_forecast.forecastday[0].fcttext_metric;
            return repromptText;
        });
    }).end();
}

console.log('final value is ' + repromptFunction());
但每次,console.log都返回未定义。我知道代码是以异步方式执行的


我应该怎么做才能确保在my Console.log中收到除此未定义结果之外的任何内容?

您的
return repromptText
正在从传递给
http.request的匿名函数返回。
repromptText()
函数在此处不返回任何内容。您需要将您的
控制台.log
放入结束回调,并/或让该回调触发您希望执行的工作。

您需要使用Promise,因为请求是异步的