收藏
回答

小程序函数执行一半就中断不执行了

以下是某函数体的部分代码片段。执行会打印dat.body.res15,但是后面for循环不确定地执行a遍(a∈[0,15])。当且仅当a===15时,程序运行正常。怎么解决呢

var tmpMsgs = dat.body.res

   var retMsgs = new Array()

   console.log('dat.body.res' + tmpMsgs.length)

   for (var i = 0; i !== tmpMsgs.length; i++)

   {

     var ele = tmpMsgs[i]

     if (ele.msg.indexOf("<a href=") !== -1 && ele.msg.indexOf("</a><br>") !== -1) {

       console.log('continue' + i)

       continue

     }

     ele.url = self.info.kefuurl

     ele.nodes = [{ name: 'img', children: [] }]

     ele.type = 'img'

     if (ele.flag === '0') {

       ele.cls = 'send'

       ele.url = self.info.kehuurl

     } else {

       self.setImageURL(ele.kf_account, ele)

     }

     ele.flag = undefined

     ele.kf_account = undefined

     if (ele.msgtype === 'image') {

       ele.nodes[0].attrs = {

         src: app.globalData.downPrefix + ele.msg,

         style: (self.data.iOSdevice ? 'height: 256px; max-width: 100%;' : 'max-width: 100%;')

       }

     } else if (ele.msgtype === 'link') {

       self.parseURLMessage(JSON.parse(ele.msg), ele)

     } else {

       ele.nodes[0].name = 'div'

       self.parseTextMessage(ele.msg, ele)

     }

     ele.msgtype = undefined

     ele.msg = undefined

     var time = new Date()

     if (ele.utime) {

       time.setTime(parseInt(ele.utime) * 1000)

       ele.utime = undefined

     } else {

       time.setFullYear(parseInt(ele.time.substring(0, 4)))

       time.setMonth(parseInt(ele.time.substring(4, 6)) - 1)

       time.setDate(parseInt(ele.time.substring(6, 8)))

       time.setHours(parseInt(ele.time.substring(9, 11)))

       time.setMinutes(parseInt(ele.time.substring(12, 14)))

       time.setSeconds(parseInt(ele.time.substring(15, 17)))

     }

     ele.time = time.getFullYear() + '-' + (time.getMonth() + 1) + '-' + time.getDate() + ' ' + time.getHours() + ':' + time.getMinutes()

     ele.hideTime = time.getTime() + 60000 > self.info.agoTime

     //ele.id = time.getTime()

     self.info.agoTime = time.getTime()

     //this.data.msgs.unshift(ele)

     retMsgs.unshift(ele)

     console.log('for' + i)

   }

此图是a===0时的打印


最后一次编辑于  2018-05-29  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答