美文网首页
基于 Promise 封装同步处理下的延时器

基于 Promise 封装同步处理下的延时器

作者: 弹力盒 | 来源:发表于2021-07-12 13:58 被阅读0次
/**
 * 利用 Promise 函数
 * 封装自定义同步操作延时器
 * @param {延时时间} t
 */
const delay = (t = 1000) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, t);
  });
};

/**
 * demo 1
 * ---------------------------------------------------
 * 以下区域会先打印 12345,在 3s 后打印 123
 * 利用立即执行函数来处理 async...await 的情况
 */
!(async function () {
  await delay(3000);
  console.log(123);
})();

console.log(12345);
// ---------------------------------------------------

/**
 * demo 2
 * +++++++++++++++++++++++++++++++++++++++++++++++++++
 * 在 for 循环里面利用 立即执行函数 + async...await... 延时处理
 */
for (let i = 0; i < 10; i++) {
  !(async function () {
    await delay(i * 1000);
    console.log(i);
  })();
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章

网友评论

      本文标题:基于 Promise 封装同步处理下的延时器

      本文链接:https://www.haomeiwen.com/subject/gceeultx.html