Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xeaone/promise-tool
promise-tool
https://github.com/xeaone/promise-tool
js library promise sequence timers tools
Last synced: about 1 month ago
JSON representation
promise-tool
- Host: GitHub
- URL: https://github.com/xeaone/promise-tool
- Owner: xeaone
- License: mpl-2.0
- Created: 2016-12-28T17:43:20.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-11-12T20:26:03.000Z (about 7 years ago)
- Last Synced: 2024-11-07T19:12:19.232Z (about 2 months ago)
- Topics: js, library, promise, sequence, timers, tools
- Language: JavaScript
- Size: 11.7 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Promise Tool
A promised library of tools for Node.js and the browser.## Install
`npm install promise-tool --save`## API
- `PromiseTool.lift()` Lifts a callback style function or prototype object and converts to a promise/s first argument must be an error.- `PromiseTool.series` A given task will not be started until the preceding task completes.
- `tasks` The array of functions to execute in series.
- `task` A function which returns a promise.
- `resolve(result)` A result which will be appended to the end of each task/function as parameter.
- `parameters` An Array of parameters to be passed to each task/function. **Optional**- `PromiseTool.setTimeout`
- `delay` The number of milliseconds to wait before calling resolve.
- `...args` Optional arguments to pass when the resolve is executed.- `PromiseTool.setInterval`
- `delay` The number of milliseconds to wait before calling resolve.
- `method` A function that repeats on each interval. This function will fire upon each interval unless one of the following returns are implemented.
- Return Value Actions
- `result` Any valid JavaScript error type. Will fire the reject and pass the error.
- `result` A boolean that calls resolve if true or reject if false.
- `result` Any thing returned besides `null`, `undefined`, `false`, and a valid `Error` type will resolve with that return value as the first argument.
- `result` Both are ignored and will not trigger the resolve or reject.
- `...args` Optional arguments to pass when the resolve is executed.- `PromiseTool.setImmediate`
- `...args` Optional arguments to pass when the resolve is executed.- `PromiseTool.clearTimeout`
- `timeout` A Timeout object as returned by setInterval().- `PromiseTool.clearInterval`
- `interval` A Interval object as returned by setInterval().- `PromiseTool.clearImmediate`
- `immediate` An Immediate object as returned by setImmediate().## Examples
### Series
```JavaScript
var PromiseTool = require('../index.js');function a (one, two) {
return new Promise (function (resolve) {
setTimeout(function () {
return resolve(`a-${one}${two}`);
}, 900);
});
}function b (one, two, result) {
return new Promise (function (resolve) {
setTimeout(function () {
result = `${result} b-${one}${two}`;
return resolve(result);
}, 600);
});
}PromiseTool.series([a, b], [1, 2]).then(function (result) {
console.log(result); // a-12 b-12
});
```### Timers
```JavaScript
var PromiseTool = require('promise-timers');
var delay = 500;PromiseTool.setTimeout(delay).then(function (args) {
// this refers to timeout
console.log(args);
console.log('timeout done');
});var i = 0;
function method () {
// this refers to interval
if (i > 5) {
return true;
} else {
console.log(i);
i++;
}
};PromiseTool.setInterval(delay, method).then(function (args) {
// this refers to interval
console.log(args);
console.log('interval done');
});PromiseTool.setImmediate().then(function (args) {
// this refers to immediate
console.log(args);
console.log('immediate done');
});```
## Authors
[AlexanderElias](https://github.com/AlexanderElias)## License
[Why You Should Choose MPL-2.0](http://veldstra.org/2016/12/09/you-should-choose-mpl2-for-your-opensource-project.html)
This project is licensed under the MPL-2.0 License