@cowprotocol/cow-sdk
Version:
<p align="center"> <img width="400" src="https://github.com/cowprotocol/cow-sdk/raw/main/docs/images/CoW.png" /> </p>
71 lines (50 loc) • 1.58 kB
Markdown
# promise.series
[](https://npmjs.com/package/promise.series) [](https://npmjs.com/package/promise.series) [](https://circleci.com/gh/egoist/promise.series)
> Run Promise in series.
## Install
```bash
$ npm install --save promise.series
```
## Usage
```js
const promiseSeries = require('promise.series')
const sleep = timeout => {
return new Promise(resolve => {
setTimeout(() => {
console.log(new Date())
resolve()
}, timeout)
})
}
// each item returns a Promise
promiseSeries([
() => sleep(1000),
() => sleep(2000)
]).then(() => {
console.log('Completed')
})
```
## API
### promiseSeries(tasks, [initialValue])
#### tasks
Type: `array`
An array of functions which return a Promise.
#### initialValue
Pass an initial value to the promise chain, eg:
```js
promiseSeries([
value => asyncOperation().then(() => value * 2),
value => asyncOperation().then(() => value * 2)
], 1).then(result => {
console.log(res)
//=> 4
})
```
## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D
## License
[MIT](https://egoist.mit-license.org/) © [EGOIST](https://github.com/egoist)