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 函数时,要注意代码的嵌套,避免出现死循环或者其他错误。
JavaScript setTimeout 函数详解及应用 - 延时执行代码的利器

原文地址: https://www.cveoy.top/t/topic/opgS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录