通过promise获取数据改变data后,使用wx:for循环不渲染页面

在onload里面通过promise异步获取三个城市的天气情况,改变data里面的数据。view使用wx:for循环,渲染出来。但是AppData里面存在着数据,却渲染不出来,是异步的原因么


//获取缓存的城市名称

 wx.getStorage({

            key: 'default',

            success: function(res) {

                var arr = [];

                // 循环请求数据

                for (let i = 0; i < res.data.length; i++) {

                    wx.request({

                        url: 'https://free-api.heweather.com/s6/weather', //仅为示例,并非真实的接口地址

                        data: {

                            location: res.data[i].city,

                            key: "4f4429b5eb4e4aee9343ad8429909de3"

                        },

                        header: {

                            'content-type': 'application/json' // 默认值

                        },

                        success: function(params) {

                            //添加到data里

                            arr.push(params.data.HeWeather6[0]);

                            _this.setData({

                                forecast: arr

                            })

                        }

                    })

                }

            }

        })

在appdata里面也是有数据存在的

https://img.mukewang.com/5c91e39c0001d9dd07000362.jpg

牧羊人nacy
浏览 1197回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript