首页 > 其他分享 >如何编写一个arrange 函数

如何编写一个arrange 函数

时间:2023-03-27 14:15:43浏览次数:38  
标签:function do tasks 函数 resolve 编写 dur arrange

/**
 * @description 链式调用的方法
 * @param {*} taskIs 
 * @example 
 * arrange('arrage').waitFirst(2).do('吃西瓜').do('吃西瓜2').execute()
 * @returns {execute, do, wait, waitFirst}
 */
export const arrange = (taskIs) => {
    const tasks = []
    tasks.push(() => {
      console.log(`${taskIs} IS UNDEFINED`);
    })
    async function execute(){
      for(const t of tasks){
        await t()
      }
    }
    function doSomething(someThing){
      tasks.push(() => {
        console.log(`start to ${someThing}`);
      })
      return this
    }
    function wait(dur){
      tasks.push(() => new Promise(resolve => {
          setTimeout(resolve, dur*1000);
      }))
      return this
    }

    // 先等待具体时间在执行
    function waitFirst(dur){
      tasks.unshift(() => new Promise(resolve => {
          setTimeout(resolve, dur*1000);
      }))
      return this
    }
    return {
      execute,
      do:doSomething,
      wait,
      waitFirst
    }
  }

 

标签:function,do,tasks,函数,resolve,编写,dur,arrange
From: https://www.cnblogs.com/xuhuang/p/17261347.html

相关文章

  • CF:D. Shocking Arrangement
    掉大分补提D点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PLL;#defineIOScin.tie(nullptr)->sync_wit......
  • Oracle-nvl函数的使用(及其相似函数)
    Oracle中的nvl函数使用//SQL实例selectNVL("字段名称",指定常量)from"表名";//结构拆解NVL("数据1","数据2");代码解释上述SQL的含义是指,从指定表中查出指定字段......
  • Oracle中nvl()与nvl2()函数详解
    1.nvl:根据参数1是否为null返回参数1或参数2的值【函数格式】:nvl(expression1,expression2)【函数说明】:若expression1值为null,则该函数返回expression2;若expression1......
  • python 类的方法与普通函数的区别
    引用菜鸟教程中所说:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,按照惯例它的名称是self。下面我就写了个类的构造方法和类的方法,......
  • Delphi Locate函数[1] - 查询、定位
     DelphiTDataSet.Locate函数-查询、定位使用ADO等数据控件的时候,经常会用到 locate函数,在结果数据集中查询和定位,下面介绍一下:原型:1function Locat......
  • Node.js编写报时器,精度高、性能高
    Node.js编写的报时器,精度高、性能高//Functiontoprintthecurrenttimeeveryminuteonthe0thsecondandwithmillisecondprecisionfunctionprintTime(inter......
  • Linux函数之lseek、stat、lstat
    Linux函数之lseek、stat、lstat的简单介绍lseek函数在Linux终端下输入命令:man2lseek,可以查看具体函数信息#include<sys/types.h>#include<unistd.h>......
  • C#:C#终结器(析构函数)
    C#终结器是一种特殊的方法,它在对象被垃圾回收之前被调用。它可以用来释放非托管资源,如文件句柄、数据库连接等。在C#中,终结器是通过在类的定义中添加一个名为“~类名”的......
  • css-6个可以在css属性中使用的函数
    1-calc计算结果div{width:calc(100vm-50px);}2-var它可以将CSS变量的值赋予属性:root{--main-bg-color:coral;--main-padding:15px;}div{backgro......
  • 将一个多维数组整合成树形结构,可以通过递归函数来实现
    functionbuildTree(arr,parentId=null){lettree=[];for(leti=0;i<arr.length;i++){letitem=arr[i];if(item.parentId===parentId......