uniapp中,setStorage、setStorageSync、getStorage、getStorageSync的区别

1,452 阅读1分钟

1. 接口不同

setStorage/getStorage是异步接口
setStorageSync/getStorageSync是同步接口
在这里,解释一下同步接口和异步接口,同步接口,只有当前接口执行完成后,才执行下一个接口;异步接口:当前接口的执行不会阻塞后续代码的执行。不管是否保存成功,异步都会继续向下执行;但同步必须得等保存成功之后,才会执行后续代码。

2. 使用方式不同

uni.setStorage({
	key: 'storage_key',
	data: 'hello',
	success: function () {
		console.log('success');
	}
});
try {
	uni.setStorageSync('storage_key', 'hello');
} catch (e) {
	// error
}
uni.getStorage({
	key: 'storage_key',
	success: function (res) {
		console.log(res.data);
	}
});
try {
	const value = uni.getStorageSync('storage_key');
	if (value) {
		console.log(value);
	}
} catch (e) {
	// error
}

以上代码搬运自官网(uniapp.dcloud.io/api/storage…

setStorage/getStorage:有一个success的回调
setStorageSync/getStorageSync:被try/catch包裹

3. 参数不同

setStorage/getStorage的参数是OBJECT setStorageSync/getStorageSync的参数是键值对(key,data)

留下我的问题,前端调用A、B两个接口,B接口需要调用A接口的返回参数,已经通过async/await的方式控制了接口调用的时序,但B接口的在调用时仍然拿不到相关参数,这个参数通过setStorageSync存储在缓存中,通过getStorageSync获取的,拿不到参数的原因跟setStorageSync/getStorageSync是否相关?