返回http.request内部的变量?

发布于 2022-09-11 16:56:00 字数 1344 浏览 14 评论 0

function http_get (ip, port) {
    let WAN = false;
    //创建一个http.ClientRequest对象
    var data = {  //这是需要提交的数据 
        msg: 'can you hear me?',  
        time: new Date().getTime()
    };
    var content = qs.stringify(data);
    var options = {
        host : ip,
        port : port,
        path : '/',
        method : "POST",
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
        }
    };
    var request = http.request(options, function(res) {
        console.log('STATUS: ' + res.statusCode);
        if (res.statusCode == '200') {
            WAN = true;
        }
        console.log(WAN)  //true
        console.log('HEADERS: ' + JSON.stringify(res.headers));  
        res.setEncoding('utf8');
        console.log("get respones");
        let data = '';
        res.on('data', function (chunk) {
            console.log('BODY: ' + chunk);
        });
        res.on('end', function (e) {  
            console.log('-----end----')
        });
    });
    request.on('error', function (e) {  
        console.log('problem with request: ' + e.message);  
    });
    request.write(content);
    request.end();     //发送这个请求
    return WAN;
}
let a = http_get("127.0.0.1", 3000)
console.log('a:'+ a);  //a:false

下面打印出a:false,上面打印出true,要怎么才能打印出a:true?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦屿孤独相伴 2022-09-18 16:56:00

把中间的 http.request Promise化或者使用 Async/Await 就可以了,可以参考文章

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文