cordova s​​etTimeout函数

时间:2014-07-15 08:05:35

标签: javascript cordova settimeout

我遇到了setTimeout的问题,我无法弄清楚原因。

我正在使用cordova,而setTimeout函数会导致奇怪的混淆。

app.displayData = function(device) {
    app.readThermometer(device);
    app.readAccelerometer(device);
    app.readHumidity(device);
    app.readMagnetometer(device);
    //setTimeout(app.displayData(device), 5000);
};

执行一次。

app.displayData = function(device) {
    app.readThermometer(device);
    app.readAccelerometer(device);
    app.readHumidity(device);
    app.readMagnetometer(device);
    setTimeout(app.displayData(device), 5000);
};

执行多次,但每5秒执行一次。这对我来说是一个问题,因为它阻止jQuery正确执行。 (永远不要预期dom修改)

我错过了什么?如果它是cordova中的一个错误,你知道在javascript中延迟代码执行的其他方法吗?

1 个答案:

答案 0 :(得分:4)

您正在直接调用函数app.displayData

setTimeout(app.displayData(device), 5000);

请尝试以下

setTimeout(function () {
    app.displayData(device);
}, 5000);

另一种选择,如果您更喜欢Function.bind

setTimeout(app.displayData.bind(app, device), 5000);