在最近的學習官方文檔過程中,經(jīng)常用到定時的操作,一個是setTimeout,另一個是setInterval,那這兩者有什么區(qū)別呢。
setTimeout
設(shè)定一個定時器,在定時到期以后執(zhí)行注冊的回調(diào)函數(shù)。
number setTimeout(function callback, number delay, any rest)
1?function callback 表示回調(diào)函數(shù)
2?number delay 表示延遲的時間,函數(shù)的調(diào)用會在該延遲之后發(fā)生,單位 ms。
3?any rest 表示param1, param2, ..., paramN 等附加參數(shù),它們會作為參數(shù)傳遞給回調(diào)函數(shù)。
4?number 表示定時器的編號。這個值可以傳遞給 clearTimeout 來取消該定時。
setTimeout(()=>{
console.info("我只執(zhí)行一次")
}, 2000)
setInterval
設(shè)定一個定時器,按照指定的周期(以毫秒計)來執(zhí)行注冊的回調(diào)函數(shù)。
number setInterval(function callback, number delay, any rest)
1?function callback 表示回調(diào)函數(shù)
2?number delay 表示執(zhí)行回調(diào)函數(shù)之間的時間間隔,單位 ms。
3?any rest 表示param1, param2, ..., paramN 等附加參數(shù),它們會作為參數(shù)傳遞給回調(diào)函數(shù)。
4?返回值number 表示定時器的編號。這個值可以傳遞給 clearInterval 來取消該定時。
onShow: function () {
this.timer= setInterval(()=>{
console.info("我循環(huán)執(zhí)行")
}, 2000)
},
onUnload: function () {
clearInterval(this.timer); //取消該定時
},
總結(jié):
setTimeout用于延遲執(zhí)行某方法或功能,單次的。
setInterval用于循環(huán)延遲執(zhí)行某方法或功能,多次的,直到clearInterval取消。