https://github.com/weirongxu/achain
Asynchronous chain function
https://github.com/weirongxu/achain
achain async await chain
Last synced: 11 months ago
JSON representation
Asynchronous chain function
- Host: GitHub
- URL: https://github.com/weirongxu/achain
- Owner: weirongxu
- License: mit
- Created: 2017-08-02T07:41:54.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-10T03:32:21.000Z (over 3 years ago)
- Last Synced: 2025-04-03T03:33:29.044Z (about 1 year ago)
- Topics: achain, async, await, chain
- Language: JavaScript
- Homepage:
- Size: 1.46 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AChain
[](https://npmjs.com/package/achain)
[](https://npmjs.com/package/achain)
[](https://travis-ci.com/weirongxu/achain)
asynchronous chain function based on [Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy)
## Usage
npm
```sh
npm i achain
```
or yarn
```sh
yarn add achain
```
```javascript
const achain = require('achain')
let attr = await achain(promise).attr.asyncFunc().asyncFunc()().attr
```
## Example
Before
```javascript
async function main() {
let user = await getUser(1)
let userDetail = await user.getDetail()
await userDetail.destroy()
let user = await getUser(2)
let name = user.name
}
```
After
```javascript
async function main() {
await achain(getUser(1)).getDetail().destroy()
let name = await achain(getUser(2)).name
}
```
---
Before
```javascript
async function main() {
let res = await fetch('/users.json')
let data = res.json()
}
```
After
```javascript
var api = achain(fetch)
async function main() {
let data = await api('/users.json').json()
}
```
## License
MIT