# smart-async-queue

> A process queue written in async/await way in ES7+(ES8).

Latest version **1.0.3** (published 2019-03-04) · ISC license · 0 weekly downloads

## Install

```sh
npm install smart-async-queue
pnpm add smart-async-queue
yarn add smart-async-queue
bun add smart-async-queue
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2019-03-04 |
| First published | 2017-04-01 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 3.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | shiyh2012@foxmail.com |
| Maintainers | dunhuang |
| Keywords | queue, async, await |

## Links

- npm: https://www.npmjs.com/package/smart-async-queue
- Repository: https://github.com/dunhuang/async-queue
- Homepage: https://github.com/dunhuang/async-queue#readme
- Issues: https://github.com/dunhuang/async-queue/issues
- npm.io page: https://npm.io/package/smart-async-queue

## Dependencies (3)

- [babel-cli](https://npm.io/package/babel-cli.md) ^6.7.5
- [babel-preset-es2015](https://npm.io/package/babel-preset-es2015.md) ^6.9.0
- [babel-preset-stage-0](https://npm.io/package/babel-preset-stage-0.md) ^6.5.0

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 1.0.3 (latest) — 2019-03-04
- 1.0.2 — 2017-04-01
- 1.0.1 — 2017-04-01
- 1.0.0 — 2017-04-01

## README

# smart-async-queue
A process queue written in async/await way in ES7+(ES8).  


# Introduction 简介
An queue, run one process after another automatically. 
Each one process includes series of async functions and returns a promise.
一个依次、自动执行的队列。队列中每个流程都是一些异步的async函数，返回promise。

# Usage 使用

### npm

```
npm install smart-async-queue
```

```
import Queue from 'smart-async-queue';
```

### init 初始化
```
let queue = new Queue();
```
### push 启动一个process
use Queue.prototype.push(func) to run a process. It's param should be a function, which returns a promise.
用push方法来启动一个process，参数必须是个function，且返回一个promise。
```
queue.push(f1);
```

### timeout 设置timeout
You can set a timeout limit for the queue's process to avoid the next process never startting.
可以给队列里的每个process设置超时时限，以免因为某个process一直在处理中导致下一个process永远不能开始。
```
let queue = new Queue({timeout: 5000});
```

### example 举例
```
let queue = new Queue();
let func = (time, name)=>new Promise((resolve, reject) => {
  setTimeout(() => resolve('finished: '+name), time);
});
let process=async function(){
  console.log('started to run process', Date.now())
  let result1 = await func(1000, 'after 1000');
  console.log(result1);
  let result2 = await func(2000, 'after 2000');
  console.log(result2);
  console.log('process completed', Date.now());
};
queue.push(process);
queue.push(process);


```

---
_Source: https://npm.io/package/smart-async-queue · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
