JavaScript setTimeout 函数详解及应用 - 延时执行代码的利器
setTimeout 函数用于延时执行一个函数或者一段代码。它接受两个参数,第一个是要执行的函数或者代码,第二个是延时的时间(以毫秒为单位)。例如,setTimeout(function(){console.log('Hello World')}, 1000) 表示延时 1 秒后执行 console.log('Hello World')。
使用 setTimeout 实现音乐播放
async function player(file,callback){//播放音乐
//await $.plusReady() ;
const s = plus.audio.createPlayer('audio/'+file+'.mp3');
s.play( function () {//播放完成回调
if(typeof callback == 'function') {
callback();
}
}, function ( e ) {//失败回调
console.log( 'Audio play error: ' + file+e.message );
});
return new Promise((_resolve, _reject) => {
setTimeout(function () {//延时获取,否则可能没有返回长度
var num = s.getDuration()*1000;
setTimeout(() => {
s.close();
}, num);
_resolve(num)
}, 100)
})
}
setTimeout 的返回值
setTimeout 函数返回一个唯一的标识符,这个标识符可以用来取消 setTimeout 设置的延时执行。可以使用 clearTimeout() 函数来取消延时执行,例如:
var timeoutId = setTimeout(function(){console.log('Hello World')}, 1000);
clearTimeout(timeoutId);
setTimeout 的应用场景
setTimeout 函数的应用场景非常广泛,例如:
- 延迟执行一些操作,例如用户点击按钮后延迟加载一些内容
- 定时执行一些操作,例如定时发送 AJAX 请求或者更新页面内容
- 创建动画效果,例如使用 setTimeout 函数控制动画的播放速度
setTimeout 的注意事项
- setTimeout 函数的第二个参数表示的是延时时间,而不是执行时间。也就是说,setTimeout 函数并不能保证在指定的延时时间内执行代码,因为 JavaScript 是单线程的,如果在执行 setTimeout 函数之前有其他代码正在执行,那么 setTimeout 函数的执行就会被延迟。
- setTimeout 函数的执行顺序是异步的,它不会阻塞后面的代码执行。
- 使用 setTimeout 函数创建动画效果时,需要注意动画的帧率,如果帧率过低,动画就会出现卡顿现象。
- 在使用 setTimeout 函数时,要注意代码的嵌套,避免出现死循环或者其他错误。
原文地址: https://www.cveoy.top/t/topic/opgS 著作权归作者所有。请勿转载和采集!