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

西安专业做网站建设费用品牌营销策略分析论文

西安专业做网站建设费用,品牌营销策略分析论文,广州白云区123号,免费的app软件下载网站某些需求接口是并发处理,多个接口一并触发,这种一般通过 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/304678.html

相关文章:

  • wordpress 图片 本地化seo实训报告
  • wordpress调用文章第一张图片seo关键词使用
  • 网站开发合同管辖权异议域名检测
  • 装修贷seo是指什么
  • 114啦建站程序汕头网站建设公司哪个好
  • 什么网站需要公安备案南京seo公司
  • 安平网站建设优化百度搜索收录入口
  • 外包做网站怎么拿源代码搜索引擎营销方案例子
  • 投资公司成立条件优化合作平台
  • wordpress pressseo网页优化工具
  • 海外运营渠道的推广杭州seo的优化
  • 护士首次注册网站2021谷歌搜索入口
  • 湛江做网站的有哪些徐州百度seo排名
  • 苏州品牌网站制作公司360推广平台登录入口
  • 手机网站建设实验报告如何做营销
  • 中国十大传媒公司网站推广优化c重庆
  • html5网站制作培训做网站推广公司
  • 镇江做网站公司洛阳seo外包公司费用
  • 怎么样才能把网站关键词做有排名青岛百度推广多少钱
  • 专注于上海seo做网站建设seo网站优化知识
  • 网站流量如何来目前搜索引擎排名
  • 东莞做商城网站建设重庆网络营销
  • 大气物流公司网站源码挖掘关键词爱站网
  • 江苏建设管理信息网站好用的seo软件
  • 怎么把网站链接做二维码搜索引擎营销的案例有哪些
  • 网站建设服务公司有用吗快速排名软件哪个好
  • 南宁公司网站建设写软文推广
  • seo排名公司奇零seo赚钱培训
  • 做一个企业网站的费用奶茶网络营销策划方案
  • 做go kegg的网站java培训班学费一般多少