如何编写一个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 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-03-27 小程序如何避免setData的列表数据过大