gefer

Deferred promises and generators.

Usage no npm install needed!

<script type="module">
  import gefer from 'https://cdn.skypack.dev/gefer';
</script>

README

Gefer

Deferred promises and generators.

Why deferred promises and generators?

Don't. This is bad practice. If at all possible, you should produce promises and generators with well-defined scopes, and no side effects. However, if you find yourself in a bind with no other options, at least keep it clean.

Usage:

Deferred Promise

const { defer } = require('gefer')

const deferred = defer()

deferred.promise.then(console.log, console.error)

deferred.resolve('Hello World')

// or deferred.reject(new Error('Foo Bar'))

Deferred Generators

const mySubject = subject()

mySubject.next('Hello')

const printAll = async () => {
    for await (let v of mySubject()) {
        console.log(v)
    }
}

printAll().catch(console.error)

mySubject.next('World')

// or mySubject.error(new Error('Foo Bar'))

Use a custom promise library

const { Promise } = require('bluebird')
const gefer = require('gefer')
gefer.Promise = Promise