微信小程序开发工具第一次打开项目无法执行wx.request

image.png
大概就是这种的请求 第一次打开onload能执行 但是success的console没有显示 必须按一下保存重新刷新一下页面才能执行success的console
image.png
我加了一个定时器3秒后执行重新打开就能执行wx.request的success 一秒的话只加载少部分数据 为啥啊 新手 求大佬解释 我知道是异步的问题 但是为什么我刷新一次页面就能正常运行了 网上都找遍了 没有一个靠谱的 用promise也试过 但是只是给最外层的res.request包裹过 可能promise理解不够 才刚学几个月

完整代码

onLoad: function () {

 setTimeout(() => {

 wx.request({

 url: 'https://api.zhuishushenqi.com/ranking/gender',

 method: 'GET',

 success: res => {

 // console.log(res.data.male)

 // 获的男生畅销榜单的id

 let id = res.data.male[0]._id

 let id2 = res.data.male[5]._id

 // 通过榜单id获取女生畅销榜单书籍

 wx.request({

 url: 'https://api.zhuishushenqi.com/ranking/' + id,

 method: 'GET',

 success: res => {

 // console.log(res.data.ranking.books)

 let data = res.data.ranking.books;

 let books = [];

 for (let i = 0; i <= 7; i++) {

 let id = data[i]._id

 wx.request({

 url: 'https://api.zhuishushenqi.com/book/' + id,

 method: 'GET',

 success: res => {

 books.push(res.data)

 if (books.length > 7) {

 // 获取男生畅销榜前8本,4本给男生热门,4本给大神区

 let book1 = books.splice(0, 4)

 let book2 = books.splice(0, 4)

 // console.log(book2)

 //更改data中recommend数组中的books数组

 this.setData({

 ['recommend[0].books']: book1,

 ['recommend[2].books']: book2

 })

 // console.log(this.data.recommend)

 }

 }

 })

 }

 }

 })

 // 获取完本榜单

 wx.request({

 url: 'https://api.zhuishushenqi.com/ranking/' + id2,

 method: 'GET',

 success: res => {

 let data = res.data.ranking.books

 let books = []

 for (let i = 0; i <= 3; i++) {

 let id = data[i]._id

 wx.request({

 url: 'https://api.zhuishushenqi.com/book/' + id,

 method: 'GET',

 success: res => {

 books.push(res.data)

 if (books.length == 4) {

 this.setData({

 'recommend[1].books': books

 })

 }

 }

 })

 }

 }

 })

 }

 })

 }, 2000);
阅读 3.1k
2 个回答

把 request 的 fail 回调加上,方便看看报错到底是啥,目前没有报错,不太好排除错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏