我有这个代码,我需要解释它的作用:
function delaymethod(settings) {
settings.timeout = settings.timeout || 2000;
var start = new Date();
var id = parent.setInterval(function () {
if (settings.condition()) {
parent.clearInterval(id);
if (settings.success) {
settings.success();
}
}
var now = new Date();
if (now - start > settings.timeout) {
parent.clearInterval(id);
if (settings.fail) {
settings.fail();
} else if (settings.success) {
settings.success();
}
}
}, 200);
}
答案 0 :(得分:1)
代码设置一个周期定时器(parent.setInterval
),每200 ms触发一次。每当计时器触发时:
检查settings.condition()
,如果已完成,则会停止计时器并调用success()
功能。
它会检查自最初设置计时器(now - start > settings.timeout
)以来是否发生超时,如果超时,它会停止计时器并调用fail()
或success()
,具体取决于已定义。