评论

微信7.0.5后setData有时候回调会不执行,用setTimeout

我还要改bug,鹅厂大佬自己去定位吧

如题:我说怎么会代码执行中断,找了半天的bug

initData() {
const avatarId = myApp.globalData.avatarId
try {
getPreferences().then(res => { // 获取用户配置
console.log(‘headedpre’)
const { defaultAvatar, defaultStore, defaultBackground } = res.data
const defaultAvatarId = defaultAvatar.id
const defaultStoreId = defaultStore.id
const oldDefaultAvatarId = this.data.defaultAvatarId
console.log(‘beginSetData’)
this.setData({
imageBackground: defaultBackground,
defaultStoreId,
defaultAvatarId,
backgroundImage: defaultBackground.image.original
}, () => {
** // 这里没有执行**
console.log(‘getBGover’)
const { amendment } = defaultAvatar
const defaultAvatarGender = amendment.gender

      const onNext = (imageModel) => {
        console.log('nextBegin', avatarId)
        if (avatarId) { // 能获取specId
         
          // this.createAvatarsModels({mSpecs,  defaultAvatarId})
          this.getAvatarIdModels(avatarId)
          myApp.globalData.avatarId = 0
        } else if (imageModel && imageModel.gender === defaultAvatarGender && imageModel.id !== this.data.fittingImageId) {
          console.log('上次试衣的ID imageModel.id:', imageModel.id)
          this.getAvatarIdModels(imageModel.id)
        } else {
          // 没有服装ID
          if (this.isChangeGender(oldDefaultAvatarId)) {
      
            this.createAvatarsModels({ mSpecs: [], defaultAvatarId, type: 'default' })
          } else if (this.isChangeBody(oldDefaultAvatarId)) {
            
            this.createAvatarsModels({ mSpecs: this.data.garments, defaultAvatarId})
          }
        }
      }

      onNext(wx.getStorageSync('imageModel'))

    })
  }).catch(err => {
    // console.log(err)
    Dialog.alert({
      title: '网络异常请!检查网络!',
      selector: '#van-dialog',
      confirmButtonText: '知道了'
    }).then(() => {

    })
  })
} catch (e) {
  console.log(e)
}

},

最后一次编辑于  07-27  
点赞 0
收藏
评论