实现一个 "promise always" return 函数

Implement a "promise always" return function

所以我有这两个函数 loadScriptWithBluebirdloadBluebird,
loadScriptWithBluebird 应该对应用程序的主要流程是通用的,并且总是 return 一个承诺。
我想知道是否可以使用某种 a在 loadScriptWithBluebird

中使用 loadBluebird 的模式
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) 
        })
    }

},

因此应用程序的流程将如下所示:

loadScriptWithBluebird('jquery').then(function(){
    //...
});

谢谢。

不,你不能那样做,因为当你需要 return 承诺时,bluebird 还不可用。所以简单地忽略它,并依赖你的 loadScript 函数的调用者已经加载了 Bluebird。真的没有办法解决这个问题。