小程序不支持wx.request同步请求解决方法

  • • 发表于 8年前
  • • 作者 刘冰华
  • • 29325 人浏览
  • • 8 条评论
  • • 最后编辑时间 8年前
  • • 来自 [问 答]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

小程序为了用户体验,所有的request均为异步请求,不会阻塞程序运行

所以当你需要同步请求,锁死操作时,最好将所有的逻辑写在success:function(){}

里面,

不然后出现返回值为空的尴尬

错误代码示例:

更改后的代码为:

  onShow:function(){
    // 页面显示

    var commonFunction = require('../../pages/index/common'),
        that = this;

    var interval = setInterval(function(){
        that.setData({
          nowTime : commonFunction.formatTime(new Date())
        })
    },1000);
    var request = function(latitude,longitude){
        wx.request({
            url:  that.globalData.API_URL + 'getLocation',
            data: {
                latitude : latitude,
                longitude : longitude
            },
            method: 'GET', 
            success: function(res){
                let result = res.data.data;
                result = JSON.parse(result);
                console.log(result);
            }
            });
    };
     wx.getLocation({
          "type" : 'gcj02',
          "success" : function(res){
              const latitude = res.latitude;
              const longitude = res.longitude;
              request(latitude,longitude);
          },
          "fail" : function(e){
              console.log(e);
          }
      });



  },


  此文作用仅为填坑,
分享到:
8条评论
Ctrl+Enter
作者

刘冰华

刘冰华

APP:0 帖子:15 回复:29 积分:953

已加入社区[2921]天

屌丝男士

作者详情》
Top