一、setInterval

1、setInterval

        setInterval(function callback, number delay, any rest)

        设定一个定时器。

        参数:

参数

类型

必填

描述

callback

function

回调函数 。

delay

number

执行回调函数的时间间隔,单位ms。

兼容数字的字符串,不传、传入非数字的字符串或其它类型,默认按0处理。

rest

any

param1, param2, ...等附加参数,它们会作为参数传递给回调函数。

2、clearInterval

        clearInterval(number intervalID)

        取消由setInterval设置的定时器。

        参数:

参数

类型

必填

描述

intervalID

number

取消定时器的ID 。

二、setTimeout

1、setTimeout

        setTimeout(function callback, number delay, any rest)

        设定一个定时器。

        参数:

参数

类型

必填

描述

callback

function

回调函数 。

delay

number

执行回调函数之间的时间间隔,单位ms。

兼容数字的字符串,不传、传入非数字的字符串或其它类型,默认按0处理。

rest

any

param1, param2, ...等附加参数,它们会作为参数传递给回调函数。

2、clearTimeout

        clearTimeout(number timeoutID)

        取消由 setTimeout 设置的定时器 。

        参数:

参数

类型

必填

描述

timeoutID

number

取消定时器的ID 。

三、setInterval 和setTimeout区别

特性

setTimeout

setInterval

执行次数

只执行 1 次(延迟指定时间后执行回调,执行完自动终止)

重复执行(每隔指定时间执行 1 次回调,除非主动取消)

核心用途

延迟一段时间后执行单次操作(如:延迟 2 秒弹窗、3 秒后取消定时器)

每隔固定时间重复执行操作(如:倒计时、轮询接口、定时刷新 UI)

终止方式

无需主动终止(执行后自动失效),也可通过 clearTimeout(定时器对象) 提前取消

必须通过 clearInterval(定时器对象) 主动终止,否则会无限循环执行(导致 “定时器泄露”)

时间精度

延迟时间是「最小执行时间」(若主线程繁忙,会顺延)

间隔时间是「最小间隔时间」(同样可能因主线程阻塞顺延,且多次顺延可能导致回调 “扎堆执行”)

返回值

返回唯一的「定时器 ID 对象」,用于 clearTimeout 取消

返回唯一的「定时器 ID 对象」,用于 clearInterval 取消

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐