Sophisticated and functionally-minded async with advanced features: coroutines, promises, ES2015 iterables, fantasy-land
promise.finally
.stack
property from causing a crash when async traces are enabledenableAsyncTraces
import { resolve } from '../../src/main'
resolve().then(function f1() {
return resolve().then(function f2() {
return resolve().then(function f3() {
doh(); // <<< throws ReferenceError
});
});
});
> CREED_DEBUG=1 babel-node ./experiments/context/bb.js
/Users/brian/Projects/creed/dist/creed.js:668
throw value;
^
ReferenceError: doh is not defined
at f3 (/Users/brian/Projects/creed/experiments/context/bb.js:6:7)
from Then:
at f2 (/Users/brian/Projects/creed/experiments/context/bb.js:5:22)
from Then:
at f1 (/Users/brian/Projects/creed/experiments/context/bb.js:4:20)
from Then:
at Object.<anonymous> (/Users/brian/Projects/creed/experiments/context/bb.js:3:11)
at loader (/Users/brian/Projects/creed/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/Users/brian/Projects/creed/node_modules/babel-register/lib/node.js:154:7)
promise.bimap(f, g)
, to map either rejection reason or fulfillment value.promise.or(otherPromise)
, as a simpl binary race, equivalent to race([promise. otherPromise])
race
, all
, and merge
.jsnext:main
compatible dist build. If you build creed into your app using rollup, you'll get the advantage of rollup's tree shaking.