收藏
回答

for循环接口查询返回值的问题?

return new Promise((resolve, reject) => {

});

wx.request({

});

接口查询内容,返回可以向return 一样吗?

that 结果查询不到

这边需要做到for i++ 传i 值到接口进行查询,但进入接口后,数值无法传出,只能that.data 但获取不到,请问有大神有其他办法吗



回答关注问题邀请回答
收藏

3 个回答

  • this
    this
    2020-11-19

    Promise async await 把异步请求变为同步,不然你是无法判断的

    2020-11-19
    有用
    回复 1
    • 龙芝芝
      龙芝芝
      2020-11-20
      好的,谢谢
      2020-11-20
      回复
  • optimistic
    optimistic
    2020-11-19

    描述的不清楚 你的for在哪 代码都看不完全

    2020-11-19
    有用
    回复 6
    • 龙芝芝
      龙芝芝
      2020-11-19
      for (let i = 9; i >= 0; i--) {
       var content = "";
                wx.request({
                  url: url,
                  data: Data+i,
                  method: 'POST',
                  header: {
                    "content-type": "application/x-www-form-urlencoded"
                  },
                  success: function (res) {
                    content = res.data;
                    if(res.data != ""){
                      that.setData({
                        ScanPro: content
                      });
                      break //查詢出內容 結束循環查詢 報錯不允許寫
                    }
                    //if 判斷是否有內容
                    //如果有內容結束循環,無內容,繼續查詢,直到查詢到 Data+9
                    //不可寫 break 結束方法
                    //查出內容無法傳值到循環內
                  }});
                  console.log(content); //輸出空
                  console.log(that.setData.ScanPro);//輸出空
              }
      2020-11-19
      回复
    • optimistic
      optimistic
      2020-11-19回复龙芝芝
      首先 这个写法就不对,起码我没见过for循环请求的 要不你需要的是个请求的结果 要么需要一个请求的结果
      2020-11-19
      回复
    • optimistic
      optimistic
      2020-11-19
      先要理清楚 为什么需要循环 意义在哪
      2020-11-19
      回复
    • 龙芝芝
      龙芝芝
      2020-11-20回复optimistic
      因为要循环传值,查询内容呀,其实我也感觉不对,应该接口那边弄,但是我也没办法呀
      2020-11-20
      回复
    • optimistic
      optimistic
      2020-11-20回复龙芝芝
      不是 你循环取值 你要几个值 请求一次不行吗 for循环的下标有什么用
      2020-11-20
      回复
    查看更多(1)
  • 龙芝芝
    龙芝芝
    2020-11-19

            for (let i = 9; i >= 0; i--{

              wx.request({

                url: url,

                data: Data+i,

                method: 'POST',

                header: {

                  "content-type": "application/x-www-form-urlencoded"

                },

                success: function (res) {

                  //if 判斷是否有內容

                  //如果有內容結束循環,無內容,繼續查詢,直到查詢到 Data+9

                  //不可寫 break 結束方法

                  //查出內容無法傳值到循環內

                }});

            }


    2020-11-19
    有用
    回复 5
    • 阿true🥳
      阿true🥳
      2020-11-19
      因为请求是异步的,这么写会马上发出10个请求。。
      2020-11-19
      回复
    • 龙芝芝
      龙芝芝
      2020-11-19回复阿true🥳
      嗯嗯,对,我想结束,我想查到内容后就结束循环
      2020-11-19
      回复
    • optimistic
      optimistic
      2020-11-19回复龙芝芝
      对啥 这样无法实现的 你的for永远执行再异步之前
      2020-11-19
      回复
    • 龙芝芝
      龙芝芝
      2020-11-20回复optimistic
      他说的对
      2020-11-20
      回复
    • optimistic
      optimistic
      2020-11-20回复龙芝芝
      我的意思和他的意思是一样的 请求异步 for会直接执行十次
      2020-11-20
      回复
登录 后发表内容
问题标签