我有一个Node.js应用程序,并且正在使用一个返回Promise的函数,但在某些情况下它似乎给出了:
Unhandled rejection Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
我的服务器崩溃了。
这是一个简化的代码,可以在关闭wifi时执行崩溃:
checkip.getExternalIp().then(function (ip) {
console.log("External IP = "+ip);
});
有没有办法处理这样的事情?
答案 0 :(得分:3)
SSHClient.connect(...,sock)
电话,或者您可以向失败案例中运行的.catch
提供第二次回电:
.then
或
checkip.getExternalIp().then(function (ip) {
console.log("External IP = "+ip);
}).catch(function(err) {
// handle error here
});
答案 1 :(得分:0)
ES2015承诺遵循the A+ spec。因此,任何承诺都有可能产生可以捕获的错误。因此,要捕获您收到的错误,只需提供catch
处理程序:
checkip.getExternalIp()
.then(then_handler)
.catch(catch_handler);
更完整的示例位于the documentation。