使用setTimeout
//開啟輪詢
const start = () => {
const test = async () => {
await clearTimeout(this.interval);
console.log("開始輪詢", "具體事件");
this.interval = setTimeout(() => {
test ();
},this.times);
};
test ();
};
//關(guān)閉輪詢
const end = () => {
clearTimeout(this.interval);
}
使用setInterval
//開啟輪詢
const start = () => {
const test = async () => {
await clearInterval(this.interval);
console.log("開始輪詢setInterval", "具體事件");
this.interval = setInterval(() => {
f();
},this.times);
};
test ();
};
//關(guān)閉輪詢
const end = () => {
clearInterval(this.interval);
}
使用setTimeout配合requestAnimationFrame
//開啟輪詢
const start = () => {
const test = async () => {
await clearTimeout(this.interval);
console.log("開始輪詢setTimeout-requestAnimationFrame", "具體事件");
this.interval = setTimeout(() => {
this.animationFrameID = requestAnimationFrame(test);
},this.times);
if (!this.animationFrameID) {
this.animationFrameID = requestAnimationFrame(test);
}
};
test ();
};
//關(guān)閉輪詢
const end = () => {
clearTimeout(this.interval);
cancelAnimationFrame(this.animationFrameID)
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者