从同步JS函数返回承诺

时间:2016-07-18 15:17:34

标签: javascript promise

我试图理解JavaScript中的承诺。

对于我的示例场景,我想编写一个方法,该方法从本地" Cache"返回数据。如果可用或进行HTTP调用以从服务器检索数据。即使没有进行异步调用,我总是希望返回一个promise,以便我的JS函数的用户拥有统一的API。我怎样才能在Javascript中实现这一点。我在ES 5。

2 个答案:

答案 0 :(得分:1)

你想要它们Promise.resolve函数,它会立即解析一个值。由于您使用的是es5,您可以使用像Bluebird这样的promise库,也可以使用像Babel这样的转换程序将ES6编译为ES5。

答案 1 :(得分:0)

第一个承诺是ES-6 / ecma2015功能,所以你必须使用像babel https://babeljs.io/这样的东西,或者更好的是你可以使用这个pollyfill https://github.com/getify/native-promise-only

var promise = getValue(); 
promise.then('do your stuff here '); 


function getValue(){
    return new Promise(function executor(resolve,error){ 
         getData(resolve);   // call your function that gets the data.
    }); 
}