小程序开发同步缓存、异步缓存

目录

一、uni.setStorage(Object)     

二、uni.setStorageSync(Key, Data)

三、使用

四、uni.getStorage(OBJECT)

五、uni.getStorageInfo(OBJECT)


一、uni.setStorage(Object)     

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。

uni.setStorage({
    key: 'storage_key',
    data: 'hello',
    success: function () {
        console.log('success');
    }
});

二、uni.setStorageSync(Key, Data)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

uni.setStorageSync('storage_key', 'hello');

就写法看,同步接口用起来方便,跟js原生存储没两样,存键值对。而异步接口则是可以在存取数据后接回调。

三、使用

uni.setStorage({
	key:'ghui',
	data:'我系渣渣辉',
	success() {
		uni.showToast({
			title:'储存成功'
		});
	}
});
			
let ghui = uni.getStorage({
	key:'ghui'
})
 
let GHUI = uni.getStorageSync('ghui');
 
console.log(ghui,GHUI);

控制台结果是这样:

 后来我改了一下:

uni.getStorage({
	key:'ghui',
	success(res) {
		console.log(res);
	}
})

就是说,异步接口取缓存返回的结果,只能够在成功回调中使用,特点是拿到缓存数据后不用等待不相干的逻辑执行完,就直接执行相关逻辑,更快,但是写起来层层嵌套、不美观。回想第一次控制台打印的promise,我仿佛想到了什么。

uni.getStorage({
	key:'ghui',
}).then(res => {
	console.log(res);
})

果然,是可以的,不过取到的是一个数组,数据存在第二项

 这样的话,就可以避免层层嵌套了。而同步接口,除了写起来方便之外,他可以赋值成一个变量,用起来也方便,而且又是同步执行,不用考虑缓存没取到就执行后面逻辑问题,用来了跟原生一样,就不多写了,言多必失。

四、uni.getStorage(OBJECT)

uni.getStorage({
	key: 'storage_key',
	success: function (res) {
		console.log(res.data);
	}
});

五、uni.getStorageInfo(OBJECT)

uni.getStorageSync('storage_key');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值