0.0.4 • Published 5 years ago

@typeshell/promise-utils v0.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
5 years ago

promise-utils

install

npm install git+ssh://github.com/edwinjhlee/promise-utils.git --save

功能

sleep函数,以及可中断

我可以提供一个 naive版本的

const p = sleep(3000)
setTimeout(() => p.interrupt(), 1000)
await p // one second it will be interrupted

TimeoutPromise

可以提供一个TimeoutPromise的设计,实现:

  1. 可以定时关闭
  2. 可以interrupt

BlockingQueue

为什么不做n2n队列

  1. 生产者蜂拥而至,处于await状态,此时其实排在系统内部的队列,本质与我们放在队列排队,无性能区别
  2. 多个生产者在等候,如果无队列化,一定会出现争抢,效率不高

因此 n2n 就用 n->1 以及 1->n 来模拟,避免性能

特性:

  1. n个prodcuer,n个consumer n个prodcuer会

  2. 设置是否blocking

  3. 传入函数,n个兑现
  4. consumer.take

测试

采用长度为1的blockingqueue,非常容易重现死锁的问题