weex的storage如何实现同步获取item
本文介绍了weex的storage如何实现同步获取item的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
怎么使用storage的getItem()方法同步获取存储的数据,因为异步执行带来了很多的不便,特么是在封装函数,将取到的值作为返回值时
如以下函数:
const serverPath = async function serverPath() {
const apiBase = '';
const storage = weex.requireModule('storage');
storage.getItem('apiBase', (e) => {
apiBase = e.url;
});
return apiBase;
};
这只是一种形式,我只想在拿到本地数据,并返回。
想知道有没有什么比较好的方式来解决这个问题。我在iOS中发现有同步函数,但是发现SDK的实现方式都是使用block返回的。这样同样无法很好地处理返回值的问题
解决方案
/**
* 获取缓存
* @param key
*/
export function get_cache(key) {
return new Promise(function (resolve) {
try {
storage.getItem(key, e => {
if (e.result === 'success') {
resolve(e.data);
console.info(`获取缓存key='${key}'成功,result=`, e);
} else {
resolve(false);
console.warn(`获取缓存key='${key}'失败,result=`, e);
}
});
} catch (e) {
console.error(`获取缓存key='${key}'出现异常! >>>` + e.toString());
resolve(false);
}
});
}
使用时
get_cache('token')
.then(r => {
});
因为我这边的基本都把这些方法封装成了promise对象,所以实际业务操作中就只是组合连接这些promise操作
这篇关于weex的storage如何实现同步获取item的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文