babel/lib/6to5/transformation/templates/async-to-generator.js
Sebastian McKenzie 8f68f62f8a add jscs
2015-01-22 19:23:56 +11:00

29 lines
589 B
JavaScript

(function (fn) {
return function () {
var gen = fn.apply(this, arguments);
return new Promise(function (resolve, reject) {
var callNext = step.bind(gen.next);
var callThrow = step.bind(gen.throw);
function step(arg) {
try {
var info = this(arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(callNext, callThrow);
}
}
callNext();
});
};
})