所以我有这两个函数loadScriptWithBluebird
和loadBluebird
,
loadScriptWithBluebird
应该是应用程序主流的通用,并且总是返回一个promise。我想知道是否有可能使用某种模式{{1在loadBluebird
loadScriptWithBluebird
因此应用程序的流程如下所示:
function loadBluebird(callback){
//load the script and callback ...
script.onload = function() {
callback();
};
}
function loadScriptWithBluebird (src){
if(isBluebirdAvailable()){
return new Bluebird(function(resolve, reject){
//load the script and resolve ...
script.onload = function() {
resolve();
};
});
}else{
//issue starts here since i obviously cannot return inside the callback
loadBluebird(function(){
loadScriptWithBluebird(src)
})
}
},
感谢。
答案 0 :(得分:0)
不,你不能这样做,因为当你需要返回诺言时,蓝鸟还无法使用。所以简单地忽略它,并依赖于loadScript
函数的调用者已经加载了Bluebird。这并不是真的有办法解决这个问题。