收藏
回答

为什么reverseGeocoder获取的数据可以显示却无法参与运算?

在onLoad()内

qqmapsdk.reverseGeocoder({

          location: { latitude: latitude, longitude: longitude },

          success: function (res) {//成功后的回调

            let address=res.result.address;

            var C = res.result.address_component.city;

            var D = res.result.address_component.district;

            if(D==''){

              currentArea = C; 

            }else{

              currentArea = D;

            }

reverseGeocoder返回的数据可以输出前端显示,可以直接传给数据库查询,但是一旦传给函数或者数据库命令就失效。

下面是数据库查询代码:

 wx.cloud.init();

    const db = wx.cloud.database({

    env: 'XXXXXX'

    });

    const _ = db.command

    const areaUp=currentArea;

    db.collection('news').where({

     area:_.or(_.eq(areaUp),_.eq('top')),

    }).get({

    success: function (res) { 

    newsData=res.data.sort(function (a, b) {

             return (a.ranking - b.ranking);

           });

   }

  })//

如果把currentArea替换成普通字符串,就正常运行并返回正确结果。另外address获取的let变量赋值给var定义的全局变量也无法用于push()函数压入已有数组,有大神知道这是啥问题吗?

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

1 个回答

  • 海纳百川
    海纳百川
    2021-10-06

    已解决,把读取数据库放到回调函数里就可以了

    2021-10-06
    有用
    回复
登录 后发表内容