我試圖只在setTimeout回調中設置它之後才返回一個變量。我想不出任何其他方式來做到這一點,但這是我的嘗試(我知道代碼看起來很愚蠢,但它是爲了解決科爾多瓦的一個bug)。由於我理解之外的原因,它會導致無限循環。setTimeout之後的返回變量
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');
});