从同步JS函数返回承诺



我正在努力理解JavaScript中的promise。

对于我的示例场景,我想编写一个方法,该方法要么从本地"缓存"返回数据(如果可用),要么调用HTTP从服务器检索数据。我总是想返回一个承诺,即使在没有进行异步调用的情况下,这样我的JS函数的用户就有了一个统一的API。我如何在Javascript中实现这一点。我在ES 5。

您需要它们的Promise.resolve函数,该函数需要立即解析一个值。由于您使用的是es5,您可以使用像Bluebird这样的promise库,也可以使用像Babel这样的transiler将ES6编译为es5。

第一个承诺是ES-6/ecma2015特性,所以您必须使用类似babel的东西https://babeljs.io/或者更好的是你可以用这个pollyfillhttps://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.
    }); 
}

最新更新