你还在有setTimeout?太low了吧!用Promise封装一下,还可以这样用!
先上代码
/**
*
* @description 用promise封装倒计时
* @param {number} ms 倒计时毫秒
* @param {any} arg 可选|倒计时结束返回的数据
* @return {any}
*/
const sleep = (ms,arg) => new Promise((resolve) => setTimeout(resolve, ms,arg));
- 利用Promise对象进行二次封装setTimeout函数。 然后就可以完美结合async await来实现倒计时的功能,甚至还能等待一个预设返回值!是不是觉得那个被“用烂”的setTimeout一下子就不香了!
- demo
(async function () {
await sleep(200);
console.log("hey guys"); // 200 毫秒后打印 "hey guys"
console.log(await sleep(1000, { data: { result: "xxxxxxxx" } })); // 1200毫秒后打印 { data: { result: 'xxxxxxxx' } }
})();