当前位置: 首页 > wzjs >正文

青海网站制作seo百度快速排名

青海网站制作,seo百度快速排名,wordpress 翻译 每页,上海建筑工程股份有限公司某些需求接口是并发处理,多个接口一并触发,这种一般通过 Promise.all 处理,但是有时候需要链式触发,也就是后一个根据前一个结果处理 所以就有了下面这个代码 /*** 链式触发器的配置选项* property {number} [timeout] - 超时时…

某些需求接口是并发处理,多个接口一并触发,这种一般通过 Promise.all 处理,但是有时候需要链式触发,也就是后一个根据前一个结果处理

所以就有了下面这个代码

/*** 链式触发器的配置选项* @property {number} [timeout] - 超时时间(毫秒),默认5000ms* @property {(result: any, index: number) => Promise<any>} [middleware] - 中间件函数,用于处理每个promise的结果*/
type ChainTriggerOptions = {timeout?: number;middleware?: (result: any, index: number) => Promise<any>;
};/*** 链式触发器 - 顺序执行一组异步函数,支持中间件处理和超时控制* @template T - 异步函数数组类型* @param {T} promises - 要顺序执行的异步函数数组* @param {ChainTriggerOptions} [options] - 配置选项* @returns {Promise<Array<Awaited<ReturnType<T[number]>>>>} - 返回所有异步函数结果的数组* @example* // 基本用法* chainTrigger([*   () => fetch('/api/data1'),*   () => fetch('/api/data2'),*   () => fetch('/api/data3')* ]).then(results => {*   console.log(results); // [data1, data2, data3]* });** @example* // 带中间件和超时的用法* chainTrigger([*   () => fetch('/api/user'),*   () => fetch('/api/orders')* ], {*   timeout: 10000,*   middleware: async (result, index) => {*     if (index === 0) {*       return { ...result, processed: true };*     }*     return result;*   }* });*/
export const chainTrigger = <T extends Array<() => Promise<any>>>(promises: T,options?: ChainTriggerOptions
): Promise<Array<Awaited<ReturnType<T[number]>>>> => {const { timeout = 5000, middleware } = options || {};return new Promise((resolve, reject) => {const results: any[] = [];let currentIndex = 0;let isTimedOut = false;const timer =timeout > 0? setTimeout(() => {isTimedOut = true;reject(new Error(`Chain trigger timed out after ${timeout}ms`));}, timeout): null;const executeNext = async () => {if (currentIndex >= promises.length || isTimedOut) {timer && clearTimeout(timer);resolve(results as Array<Awaited<ReturnType<T[number]>>>);return;}try {const promise = promises[currentIndex];let result = await promise();if (middleware) {result = await middleware(result, currentIndex);}results.push(result);currentIndex++;executeNext();} catch (error) {timer && clearTimeout(timer);reject(error);}};executeNext();});
};

可以根据示例直接使用,简洁简单

http://www.dtcms.com/wzjs/531970.html

相关文章:

  • 企业网站公安备案吗网络促销策略
  • 网站建设所属行业上海网络seo优化公司
  • wordpress 评论 插件南宁seo标准
  • 做php网站用什么软件开发网络推广工作内容
  • 重庆巴南网站制作互联网推广
  • 深圳坑梓网站建设公司seo网络优化师
  • 网站建设 维护 运营情况报告文明seo技术教程网
  • 网站开发的wbs分解图哪里有营销策划培训班
  • 静态中英文网站怎么做站长工具seo综合查询5g
  • 自己做网站自己做SEO怎么做
  • 做聚类热图的网站四川成都最新消息
  • 网站建设公司宣传文案现在最好的营销方式
  • 网站开发前段和后端互动营销的方式有哪些
  • 中国著名的做网站渗透海外推广解决方案
  • facebook 网站开发在线html5制作网站
  • 做好网站建设总结上海自动seo
  • 网站制作网站引流推广的句子
  • 网站建设前提江门搜狗网站推广优化
  • 网站建设电话销售的话术企业网站设计毕业论文
  • 搜狗seo培训网站优化关键词排名公司
  • 网站建设佰金手指科杰二六百度收录网站要多久
  • 北京企业建站系统模板seo推广平台服务
  • 外贸网站找人建设西安seo报价
  • 合阳县建设局网站网店推广运营策略
  • 建瓯市规划建设旅游局网站百度云搜索入口
  • 电商网站策划书搜狗排名优化工具
  • 沈阳新民网站建设长沙的seo网络公司
  • 网销都是在那些网站做推广企业信息查询
  • 如何用word做网站抖音关键词优化排名
  • 企业网站一定要从建立网站开始网店运营流程步骤