Options
All
  • Public
  • Public/Protected
  • All
Menu

Class AsyncQueue

表示一个异步队列。

desc

异步队列可以缓冲多个函数,让这些函数串行执行。 队列实现了加锁/解锁模型,加锁时,所以函数都会等待解锁后再执行。

example

var q = new AsyncQueue(); q.enquee(function () { }); q.enquee(function (done) { setTimeout(done, 1000); }); q.enquee(function () { return new Promise(resolve => setTimeout(resolve, 1000)); }); q.enquee(function () { q.lock(); setTimeout(() => q.unlock(), 1000); });

Hierarchy

Implements

Index

Accessors

empty

  • get empty(): boolean

length

  • get length(): number

top

  • get top(): T

Methods

__@iterator

  • __@iterator(): Iterator<T>

dequeue

  • dequeue(): function
  • 从当前队列顶部取出一个回调函数并执行。

    Returns function

    返回取出的回调函数。如果队列为空或已锁定则返回 undefined。

      • (): Promise<any> | void
      • Returns Promise<any> | void

enqueue

lock

  • lock(message?: string): void
  • 锁定当前队列。锁定后所有函数都将进入等待状态。

    Parameters

    • Optional message: string

      指定锁定的来源以供调试。

    Returns void

promise

  • promise(): any
  • 创建和当前队列等价的确认对象(Promise)。

    Returns any

    返回一个确认对象(Promise)。

toArray

  • toArray(): T[]

toString

  • toString(): string

unlock

  • unlock(message?: string): void
  • 解锁当前队列。解锁后所有函数恢复执行。

    Parameters

    • Optional message: string

      指定锁定的来源以供调试。

    Returns void

Generated using TypeDoc