I'm trying to create a promise-wrapper using generator so that I can do:
var asyncResult = PromiseWrapper( $.ajax( ... ) );
So far, I've been trying with:
function PromiseWrapper(promise){
return function *wrapper(promise){
promise.then(function(result){
yield result;
}, function(err){
throw err;
});
}(promise).next().value
}
but this fails because yielding inside a normal is not allowed. Is there any work-around for this? Thank you :D
ps: I'm using babel to translate the code from es6 to es5
It is utterly impossible to wrap a promise in a generator that synchronously yields the promise's result, because promises are always asynchronous. There is no workaround for that, unless you throw mightier weapons like fibers at the asynchrony.