Promise的阻塞流程怎么用,数据处理总是比显示慢?
发布于 6 年前 作者 sdai 12521 次浏览 来自 官方Issues

我的程序是处理了一批数据存入数组再显示,不够貌似处理时间较长,界面显示完成了数据才出来完,所以数据总是无法显示,怎么样阻塞的办法写。我在onload里面用了Promise,但是怎么确定数据处理完了再刷新界面

let p = new Promise(function (reslove, reject) {

    for (var i = 0; i < slen; i++) {

          wordlist[i].Urlstr = ‘cloud://shufa-8rvqy.7368-shufa-8rvqy-1259130971/wxz/’ + wordlist[i].word + ‘.jpg’

}

          reslove(‘成功’)  //状态由等待变为成功,传的参数作为then函数中成功函数的实参

    })

      p.then((data) => {

      this.setData({ //可以这么刷新图片么,好像没有,应该怎么刷新,触发重新加载,或者怎么控制阻塞完成数据处理后再显示图片

list:wordlist       })

    }, (err) => {

          console.log(‘失败’ + err)

      })

----------------------------------------------------对应的wxml文件-----------------------------------------------------------------------

<view class=“bgimgstyle”>

    <view wx:for="{{list}}" wx:key=“key” wx:for-item="{{item}}">  

    <view  class=’{{write}}’>{{item.wrod}}</view>

      <view class=“pc”>

        <image name=“image” src="{{item.Urlstr}}" style=“width: 100px; height: 100px; background-color: #eeeeee;”  bindload=“imageLoad”>

        </image>

      </view>

 </view>

</view>

1 回复

用 wx:if 吧 有数据了再显示

回到顶部