const runningPromises = []; let stopSignal = false; let stoppingTask = null; export const PromiseCanceled = Symbol('canceled'); export function wPromise(promise, tag) { const id = runningPromises.length; promise._id = id; promise._tag = tag; runningPromises.push({ promise, reject: null }); return promise.then(function(params) { runPendingReject(promise); if(stopSignal) { return Promise.reject(PromiseCanceled); } return params; }).catch(function(e) { runPendingReject(promise); return Promise.reject(e); }) }
时间: 2024-03-28 13:40:06 浏览: 36
JavaScript ES6中const、let与var的对比详解
5星 · 资源好评率100%
这段代码是关于 Promise 的实现,其中 wPromise 函数是一个包装函数,能够将 Promise 加入到一个数组 runningPromises 中,并在 Promise 的 resolve 和 reject 方法执行时,将其从数组中移除。同时,wPromise 函数还能够检测全局变量 stopSignal 是否为 true,在其为 true 时,会将 Promise 的状态改为 rejected,并返回 PromiseCanceled。
其中,PromiseCanceled 是一个 Symbol 类型的常量,用于表示 Promise 的状态被取消了。这段代码的作用是什么,需要结合具体的业务场景才能确定。
阅读全文