1.同步和异步 区别
同步:同步是当在执行一段代码时,必须要等这段代码执行完成后,才能执行后面的代码
异步:异步就是这段执行完不完成,都可以往后继续执行
2.wx.setStorage和wx.setStorageSync的区别
- wx.setStorageSync
当你后面的操作必须依赖于修改storage后的数据,也就是说你后面的操作是基于修改storage成功后的,那就需要使用同步。也就是setStorageSync,不然后面操作执行时,使用的还是没有更新的数据。 - wx.setStorage
当你后面的操作并不需要用到修改的storage数据,那就不需要立即同步,这时就可以选择使用异步,也就是setStorage ,因为操作内存是需要时间的,往往没有代码走的快。
3. 举例
//设初始值
onLoad(options) {
wx.setStorageSync('tobu', '同步');
wx.setStorage({ key: 'yibu', data: '异步' });
},
- wx.setStorageSync
console.log('同步1');
console.log('旧值', wx.getStorageSync('tobu'));
wx.setStorageSync('tobu', '同步-改变中');
console.log('新值', wx.getStorageSync('tobu'));
console.log('同步2');
wx.setStorage({ key: 'yibu', data: '异步-改变中1' });
执行顺序
- wx.setStorage
console.log('异步1');
wx.getStorage({
key: 'yibu',
success(res) {
console.log('旧值',res.data);
},
});
wx.setStorage({ key: 'yibu', data: '异步-改变中2' });
wx.getStorage({
key: 'yibu',
success(res) {
console.log('新值',res.data);
},
});
console.log('异步2');
执行顺序
4.总结
- 代码执行顺序:先执行同步,再执行异步