我正在编写一个ping网站的脚本,并在Web UI中返回结果.但是,我遇到了一个问题,我正试图找出最佳解决方案.
这段代码需要返回一个状态数组,但是由于Node.js的异步行为,它返回一个空数组,因为代码需要时间来执行.
这是我有的:
var ping = require('ping');
function checkConnection(hosts) {
var results = [];
hosts.forEach(function (host) {
ping.sys.probe(host, function (isAlive) {
results.push({"host": host, "status": isAlive});
});
});
return {results: results, timestamp: new Date().getTime()};
}
module.exports.checkConnection = checkConnection;
Run Code Online (Sandbox Code Playgroud)
我知道你可以用定时器解决这个问题,但这里的简单和最理想的解决方案是什么?
我试图理解为什么下面的代码没有给我预期的行为.
我想问用户一个十进制数(双).我有一个错误处理程序,但这个程序的行为方式,当我输入一个单词或数字时,它仍然会抛出错误.当我没有放任何东西(空输入)时它会捕获错误.
当我删除if条件时,它将按预期工作,但我不知道如何捕获空用户输入.
任何想法将不胜感激!
Sub MainTask()
Dim userInput As Double
TryAgain:
On Error GoTo ErrorHandler
userInput = InputBox("What is the amount purchased you would like to search for? ($)")
If Len(userInput) = 0 Then
Exit Sub
End If
MsgBox "You have entered a valid value!"
Exit Sub
ErrorHandler:
MsgBox "Please enter a valid value."
GoTo TryAgain
End Sub
Run Code Online (Sandbox Code Playgroud)