# extend-promise

> 基于promise扩展一些常用方法

Latest version **0.0.7** (published 2018-08-10) · BSD-2-Clause license · 0 weekly downloads

## Install

```sh
npm install extend-promise
pnpm add extend-promise
yarn add extend-promise
bun add extend-promise
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.7 |
| Published | 2018-08-10 |
| First published | 2016-12-16 |
| Weekly downloads | 0 |
| License | BSD-2-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 75.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | cnwhy |
| Maintainers | cnwhy |
| Keywords | promise |

## Links

- npm: https://www.npmjs.com/package/extend-promise
- Repository: https://github.com/cnwhy/extend-promise
- Homepage: https://github.com/cnwhy/extend-promise#readme
- Issues: https://github.com/cnwhy/extend-promise/issues
- npm.io page: https://npm.io/package/extend-promise

## 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

- 0.0.7 (latest) — 2018-08-10
- 0.0.6 — 2017-02-05
- 0.0.5 — 2016-12-28
- 0.0.2 — 2016-12-16

## README

# extend-promise
基于promise扩展一些常用方法

##类扩展
```
var ep = require("extend-promise");
var P = ep.extendClass(Promise,{});
//ep.extendClass(Promise) 不传第二个参数则扩展到Promise上.

defer P.defer() //return deferrer Object 
//defer.promise //Pormise对像
//defer.resolve(value) //解决
//defer.reject(err)  //拒绝

//返回promise
P.resolve(value) 
P.reject(obj)       
P.all(PromiseArray)
P.allMap(PromiseArray/map)
P.map(array,mapfun,options) //遍历执行, options.concurrency 可配置并发,
P.any(PromiseArray) //返回最先改变状态的Promise状态
P.delay(time,value) //延迟指定时间 
P.some(PromiseArray,count) //获取最快解决Promise值;

//CPS函数相关
P.nfcall(fun,...arg) //转换CPS函数
P.nfapply(fun,[arg]) //转换CPS函数

//返回function
var newfn = P.denodeify(fun) //封装CPS函数

```

Promise原型扩展:
```
var ep = require("extend-promise");
var Promise = require("easy-promise"); //建议扩展原生Promise,可以扩展第三方Promise实现
ep.extendPrototype(Promise);

//返回promise
promise = Promise.resolve(1);


//promise 扩展后如下
.then({resolveFun},{rejectFun}) 
.catch({rejectFun}) 
.catchOf({errType},{rejectFun}) //与catch不同的是 reject理由如果与errType相等/ instanceof 为 true时 才交由`rejectFun`处理,否则继续传递.
.error({rejectFun}) //为.catchOf(Error,{rejectFun})的语法糖
.finali({function}) 
.done({resolveFun},{rejectFun}) //同then,但不再返回promise,未解决的错会值接抛出

```

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