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');
});