Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including gco with all npm packages installed. Try it out:

var gco = require("gco")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

gco v1.1.14

Generator based flow control that supports promises.


Generator based flow-control that supports promises.

build status coverage status npm version npm downloads dependency status devDependency status

Sauce Test Status


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.


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.


$ npm i gco


import gco from 'gco';

const onError = ({ stack }) => console.error(stack);

// Yield any promise.
gco(function* () {
  const result = yield Promise.resolve(true);
  // -> true

// 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];
  // -> [1, 2, 3]

// Yield an object to resolve multiple promises in parallel.
gco(function* () {
  const res = yield {
    1: Promise.resolve(1),
    2: Promise.resolve(2),
  // -> { 1: 1, 2: 2 }

// Errors can be try/catched.
gco(function* () {
  try {
    yield Promise.reject(new Error('boom'));
  } catch (error) {
    // -> 'boom'

To run the above examples:

$ npm run example -s


gco(fn*).then(value =>)

Returns a promise that resolves a generator.


$ npm run test:local




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free