我仅在 setTimeout 回调中设置变量后才尝试返回变量。我想不出任何其他方法来做到这一点,但这是我的尝试(我知道代码看起来很傻,但它是为了解决 Cordova 错误)。由于我无法理解的原因,它会导致无限循环。
function isConnected() {
var done = false;
setTimeout(function() {
done = true;
}, 500);
while (!done) {}
return navigator.connection.type!== Connection.NONE;
}
谁能向我解释为什么会发生这种情况,或提供替代方案?
更新(解决方案):
function isConnected(callback) {
setTimeout(function() {
callback(navigator.connection.type !== Connection.NONE);
}, 500);
}
isConnected(function(connected) {
if (!connected)
alert('Not Connected');
});