p-cancelable 一个比较小的可取消的Promise库

原文链接: p-cancelable 一个比较小的可取消的Promise库

上一篇: LeetCode 生命游戏,不用新数组的方式

下一篇: regl-camera 相机插件

这个库比较小, 至少比bluebird小太多了, 用法上类似, 但是不和bluebird兼容

https://github.com/sindresorhus/p-cancelable

取消的时候默认抛出错误, cancel时不能传递消息, bluebird也不行, cancel没有入参的

const CPromise = require("p-cancelable");

const p1 = new CPromise((resolve, reject, onCancel) => {
  setTimeout(() => {
    resolve(111);
  }, 2000);
});
Promise.all([p1]).then((data) => {
  console.log("data", data);
});

const p2 = new CPromise((resolve, reject, onCancel) => {
  onCancel.shouldReject = false;
  onCancel((msg) => {
    console.log(onCancel.isCanceled);
    console.log("msg", msg);
    // reject()
  });

  setTimeout(() => {
    resolve(222);
  }, 2000);
});

setTimeout(() => {
  p2.cancel("3333");
}, 1000);
setTimeout(() => {
  p2.cancel("4444");
}, 1500);
p2.then((data) => {
  console.log("123213", data);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值