javascript - 如何在 Node.js 中停止异步执行

标签 javascript node.js asynchronous ip hostname

我正在尝试动态添加给定主机名的 IP 地址。

代码片段

// This function will return me ip address of my server
dns.lookup('testwsserver', function (err, result {
    hostIP = result;
    console.log("Inside : "+hostIP); // Log 1
});

console.log("Outside : "+hostIP); // Log 2

var options = { 
    host    :   hostIP,
    port    :   '8080',
    path    :   null,
    method  :   'POST',
};

console.log(options); // Log 3

上面的代码只是获取给定主机名的 IP 地址并将其分配给变量“hostIP”,问题是当在循环外部显示或在选项中使用时,我在 hostIP 中得到空值。

输出 -

Outside : null                          // Log 2

{ hostname: null,                      // Log 3
  port: '8080',
  path: null,
  method: 'POST',
  }

Inside : 192.168.253.18                // Log 1

根据我的需要,代码应该按顺序执行,首先查找函数应该为hostIP赋值,然后休息执行。

感谢任何帮助!!

最佳答案

正如您所说,node.js 是异步的,您必须执行以下操作:

// This function will return me ip address of my server
dns.lookup('testwsserver', function (err, result {
    hostIP = result;
    console.log("Inside : "+hostIP); // Log 1

    console.log("Inside1 : "+hostIP); // Log 2

    var options = { 
    host    :   hostIP,
    port    :   '8080',
    path    :   null,
    method  :   'POST',
    };

    console.log(options); // Log 3

});

关于javascript - 如何在 Node.js 中停止异步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36692451/

相关文章:

javascript - 如何从 node.js 中的 http.request 向浏览器发送响应?

c# - 异步 Web Request、EntityFramework 和 DI,是如何工作的?

c# - WebRequest BeginGetResponse/EndGetResponse 在使用 Task.FromAsync 时抛出异常

javascript - Puppeteer - 自定义字体未加载到 pdf 中,但确实出现在屏幕截图中

javascript - 如何检测浏览器窗口是否为 "near"底部?

javascript - 需要帮助来确定使用哪种布局?

javascript - 如何显示用户在标签中写入的输入文本

javascript - 我的 Node.js 网络爬虫没有显示预期的输出?

javascript - 如何知道所有异步回调何时执行完毕?

javascript - 更改 Google Picker DocsView 标题