小程序setData及其回调的执行

本文探讨了小程序中setData方法的执行特点,指出其回调会在所有setData操作完成后按顺序执行。这种机制有助于解决因多个setData调用导致的时序问题,确保在回调中访问到的变量是最新的。
摘要由CSDN通过智能技术生成

小程序setData及其回调的执行*

setData后执行的回调中打印set的变量,发现变量不是赋值后的变量


```javascript
that.setData({
              isplay: resData.isPlaying,
            }, () => {
              that.myconsole(`isPlay=${that.data.isplay}`) //false
              that.myconsole(`isPlay=${resData.isPlaying}`)//true
            });
代码中两个打印结果不一样
思索其原因。。。打印了所有的isPlay
发现,setData的回调不是set后立即执行的,是等待所有setData方法全部执行完毕才执行的,另一个setData执行时改了isPlay的值。

*写了demo验证*

```javascript
 that.setData({
      demoOne:1
    },()=> {
      console.log('我是one'+that.data.demoOne+'+'+that.data.demoTwo+'+'+that.data.demoThree+'+'+that.data.demoFour) //我是one0+0+0+4
    })
    that.setData({
      demoOne:0,
      demoTwo:2
    },()=> {
      console.log('我是two'+that
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值