我正在構建一個從25分鐘到0,然後從5分鐘到0計數一定次數的計時器。現在,我有一個CountDownTimer對象,其參數爲25 * 60,從25到0計數。我想要啓動一個新的定時器,一旦另一個定時器達到0,它將從5到0進行計數。如何實現這種類型的異步代碼,然後執行該異步代碼X次?在繼續之前等待對象構造函數中的方法完成
$(document).ready(function(){
var sessionBreakTimer = new CountDownTimer(25*60);
sessionTimer.start();
if (!sessionTimer.isRunning) {
sessionBreakTimer.start();
}
);
function CountDownTimer(secs) {
var duration = secs;
var running = false;
this.start = function() {
running = true;
var startT = new Date().getTime();
var intervalId = window.setInterval(function() {
var msDelta = new Date().getTime() - startT; // milliseconds elapsed since start
var secsLeft = duration - Math.floor(msDelta/1000);
if (secsLeft === 0) {
window.clearInterval(intervalId);
console.log("cleared");
running = false;
}
}, 1000); //update about every second
};
this.isRunning = function() {
return running;
}
}
爲什麼我們並不需要在下面的代碼中的關鍵字'new'? //當ticks等於總數時做些事情:Promise.resolve({count:count,ticks:ticks,total:total}) – Autumn
@Autumn請參閱https://developer.mozilla.org/en-US/docs/Web/的JavaScript /參考/ Global_Objects /無極/決心 – guest271314