这个管理器可以按需求对promise 进行管理和取消,有需要的可以研究一下。
主要接口:
promise.zip (9.3 KB)
使用方法示例: PromiseTest.ts.zip (3.6 KB)
这个管理器可以按需求对promise 进行管理和取消,有需要的可以研究一下。
主要接口:
这个取消是在 promise 上有一个类似 isCancelled 标记,可以检查这个标记跳过后续的操作吗?还是说只是不会触发 resolve 和 reject 了?
mark!
是用异常来中断整个promise
感谢楼主分享,可惜提供的代码不全。缺少了以下几个文件。
import { tickManager } from ‘…/ticker/TickManager’;
import { ManagerBase } from ‘…/…/managers/ManagerBase’;
import { StringUtils } from ‘…/…/utils/StringUtils’;

大致看了一下实现,取消之后,原本的执行流程还是在执行的,只是最后的 resolve reject 相当于 noop 了
如果想要中断逻辑的执行,就需要在 executor 中捕获生成的 promise 进行检测了,只是这样的话就需要仔细检查是否会导致内存泄露了。
这种可以new Node当成生命周期对象 存入weakMap中当key 取消就node.destory() 就可以处理内存泄漏问题
我也看完了,真正的promise在cancel了之确实没有停止的说。
如果promise 处理的跟 io有关, 几乎只能是伪取消,没有真正取消, 这是js本身的局限性
所以timeout,cancel需要你们自己设置呀,我也不知道你的资源什么时候释放,这个真没法统一,只能说给你一个更方便控制的接口而已。没法做到全知全能的