微信小程序-外部JS修改当前页面内容

微信小程序提供了数据绑定,通过setData()函数,可以在页面对应的js内实现修改前端界面内容。但是如果在外部js函数体中如果有异步网络请求,则不能通过返回值的方式传参了。
这种情况下,只需要将本页面对象通过参数传到外部函数,在外部函数中调用setData()即可,类似C++中的引用(事实上则这本来就是引用传值)。

// index.js 页面

const tencentcloud = require("../../iotsdk/lotsdk.js");
Page({
  //调用外部函数
  pullShadow: function () {
    tencentcloud.deviceData(this) //page传出去
  }
})

// 外部js函数 iotsdk.js

function GetDeviceData(page) {
  // 实例化要请求产品的client对象
  let client = new lotclient(SECRETID, SECRETKEY);
  // 实例化一个请求对象
  let req = new lotmodel.DescribeDeviceDataRequest();
  req.DeviceName = DEVICENAME;
  req.ProductId = PRODUCTID;
  // 通过client对象调用想要访问的接口,需要传入请求对象以及响应回调函数
  client.DescribeDeviceData(req, function (err, response) {
    // 请求异常返回,打印异常信息,并重新发送请求直到成功
    if (err) {
      console.log("failed:" + err);
      return GetDeviceData(page)
    } else {
      // 请求正常返回,打印response对象
      console.log("ControlDeviceData success");
      page.setData({ shadow: JSON.parse(response.Data) })
    }
  });
}
module.exports = {
  deviceHistory: GetDeviceHistory
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值