如何将localForage.getItem()的回调改为链式调用。

Roadom 发布于 2016/07/04 15:09
阅读 726
收藏 0

几日前在选取前端缓存方案时候看到了 Mozilla 开发的 localForage。但对其回调形式颇为疑惑。

以下是 getItem 的 api。

localforage.getItem('somekey', function(err, value) { // Run this code once the value has been // loaded from the offline store. console.log(value); });
localforage.getItem('somekey').then(function(value) { // The same code, but using ES6 Promises. console.log(value); });


/*** 问题一 ***/

如何封装才可以使用以下这种常规的方式对 localForage 进行封装?即将回调隐藏起来。

var myResult = myCache.get('myKey');

无论是普通的回调还是 promise 形式,想要获得的 value 都在回调函数内才能获得到。这使得我在设法将其封装的时候遇到了问题。当然可以在自己的 get 方法中加入回调函数,并在 localForage.getItem 的回调函数中进行调用;也可以将.then 以前的内容直接返回回去,让调用 get 方法的地方自己去 then。但这都需要对调用方进行改动。

/*** 问题二 ***/

为什么需要使用这样的方式。


加载中
返回顶部
顶部