Node JS,如何使用http.request POST进入外部var?

时间:2017-05-23 21:30:23

标签: 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(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都返回undefined。我知道代码是以异步方式执行的。

我应该怎么做才能确保收到任何但未将此未定义结果收到我的Console.log?

1 个答案:

答案 0 :(得分:0)

您的<h1 id="getTIME"> Read something here </h1>正在从传递给return repromptText的匿名函数返回。 http.request函数在此处不返回任何内容。您需要将repromptText()放入最终回调和/或让回调触发您想要的工作。