Merge pull request #3117 from nooks/patch-1

Optimizations for asyncToGenerator
This commit is contained in:
James Kyle 2015-11-29 16:43:35 -08:00
commit 7f0eed0c66

View File

@ -59,11 +59,7 @@ helpers.asyncToGenerator = template(`
(function (fn) {
return function () {
var gen = fn.apply(this, arguments);
return new Promise(function (resolve, reject) {
var callNext = step.bind(null, "next");
var callThrow = step.bind(null, "throw");
function step(key, arg) {
try {
var info = gen[key](arg);
@ -76,11 +72,15 @@ helpers.asyncToGenerator = template(`
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(callNext, callThrow);
Promise.resolve(value).then(function (value) {
step("next", value);
}, function (err) {
step("throw", err);
});
}
}
callNext();
step("next");
});
};
})