我正在尝试使用生成器创建一个承诺包装器,以便我可以执行以下操作:
var asyncResult = PromiseWrapper( $.ajax( ... ) );
到目前为止,我一直在尝试:
function PromiseWrapper(promise){
return function *wrapper(promise){
promise.then(function(result){
yield result;
}, function(err){
throw err;
});
}(promise).next().value
}
但这会失败,因为不允许在法线内屈服。
有什么解决方法吗?谢谢你:D
ps: 我正在使用 babel 将代码从 es6 翻译为 es5
将 Promise 包装在同步生成 Promise 结果的生成器中是完全不可能的,因为 Promise 始终是异步的。没有解决办法,除非你在异步中扔出更强大的武器,比如纤维。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)