1.1.14 • Published 9 years ago
gco v1.1.14
gco
Generator based flow-control that supports promises.
Motivation
Developed for a specific use-case, and for learning purposes. Heavily inspired by co, which I recommend using if you're after a more feature-rich and battle-tested solution :smiley:. You'll see co's influence in the documentation, API, and unit tests.
Compatibility
Babel is used to transpile ES2015 to ES5. gco
is tested against:
- The latest stable Node.js release
- The latest LTS Node.js release
- The browsers listed in the build matrix above.
Installation
$ npm i gco
Usage
import gco from 'gco';
const onError = ({ stack }) => console.error(stack);
// Yield any promise.
gco(function* () {
const result = yield Promise.resolve(true);
console.log(result);
// -> true
}).catch(onError);
// Yield an array to resolve multiple promises in parallel.
gco(function* () {
const a = Promise.resolve(1);
const b = Promise.resolve(2);
const c = Promise.resolve(3);
const result = yield [a, b, c];
console.log(result);
// -> [1, 2, 3]
}).catch(onError);
// Yield an object to resolve multiple promises in parallel.
gco(function* () {
const res = yield {
1: Promise.resolve(1),
2: Promise.resolve(2),
};
console.log(res);
// -> { 1: 1, 2: 2 }
}).catch(onError);
// Errors can be try/catched.
gco(function* () {
try {
yield Promise.reject(new Error('boom'));
} catch (error) {
console.error(error.message);
// -> 'boom'
}
}).catch(onError);
To run the above examples:
$ npm run example -s
API
gco(fn*).then(value =>)
Returns a promise that resolves a generator.
Tests
$ npm run test:local
License
MIT
1.1.14
9 years ago
1.1.13
9 years ago
1.1.12
9 years ago
1.1.11
9 years ago
1.1.10
9 years ago
1.1.9
9 years ago
1.1.8
9 years ago
1.1.7
9 years ago
1.1.6
10 years ago
1.1.5
10 years ago
1.1.4
10 years ago
1.1.2
10 years ago
1.1.1
10 years ago
1.1.0
10 years ago
1.0.4
10 years ago
1.0.3
10 years ago
1.0.2
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago