wx.createSelectorQuery()的方法讨论

在之前的《小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项》中,讨论了节点查询方法。

最近在wx.createSelectorQuery()实际使用中又发现了一些问题:新建query对象后,调用exec,然后返回时发现,回调竟然为异步调用

举个栗子:

代码:
//  页面宽度
      var screenWidth;
      var query = wx.createSelectorQuery().select(".container").boundingClientRect();
      // console.log("\n \n \n \n " + JSON.stringify(this));
      query.exec.call({ pag: this });
      query.exec(function (res) {
        var backImageRect = res[0];
        screenWidth = backImageRect.width;
        console.log(screenWidth + "  " + JSON.stringify(res)+"\n \n \n \n "+JSON.stringify(this));

      });
      console.log("after query");

打印如下:

结论:

很显然,控制台输出顺序中,竟然先输出来了“after query”,那么该查询方法是异步回调无疑了

? ?
? ?
? ?

友情链接:

技术博客 ???????简书主页

原文地址:https://www.cnblogs.com/tig666666/p/8241841.html

时间: 2024-11-02 15:47:29

wx.createSelectorQuery()的方法讨论的相关文章

cocos2d-x 源码分析 之 CCTableView源码分析(附使用方法讨论)

cocos2d-x源码总目录 http://blog.csdn.net/u011225840/article/details/31743129 源码来自2.x,转载请注明 1.继承结构 首先来看下CCTableView的继承结构 从继承结构上看,CCTableView是一种CCScrollView,所以为了研究CCTableView的源码,清先去了解CCScrollView的源码http://blog.csdn.net/u011225840/article/details/30033501. 其

三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader

发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"upload",其它的不做任何处理: <form method="POST" action="upload" enctype="multipart/form-data"> 名字 <input type="text&q

微信小程序的wx.request请求方法,标准写法

wx.request({ url: 'https://127.0.0.1:8443/user/testRSA',//请求路径 data:{ column: output //请求数据 }, header:{ 'content-type':"application/json", //请求头 }, method:"POST", //请求方法 dataType:"json",//请求类型 success(data){ //请求成功的参数 console

ie9,关于文件下载的方法讨论(fail)

项目支持新功能,其中要求点击下载报告,post请求,请求体中携带报告内容对象,然后返回数据是二进制数据流,并把它下载下来~ 1.文件下载,首先想到的肯定是 a标签的 href,并属性 download 设置,如果有值则为下载的文件名.但是查了许久,貌似没找到如何使 a标签转换 method 为 post 的方法. 2.form 表单提交,虽然有 post 方法,但是要传输的数据是个非常大的对象,里面又有对象数组,form 传参只能是 key value 形式单个字符串传输,也是麻烦的要命. 3.

List 中去除 null 方法讨论

  先看下面的程序段: public static void main(String[] args) { List<Integer> arrays = new ArrayList<Integer>(); arrays.add(2); arrays.add(null); arrays.add(456); arrays.add(null); arrays.add(789); System.out.println(arrays); } 注:一个list,向其中插入数据时,也插入一些nul

wxpython布局管理部件wx.gridbagsizer用法示例

text = ("This is text box")         panel = wx.Panel(self, -1)         chkAll1 = wx.CheckBox(panel, ID_CHKBOX_CAN_SEL_ALL, u'全选')                chkKnown = wx.CheckBox(panel, ID_CHKBOX_CAN_UNKNOWN, u'不会')         chkUnknow = wx.CheckBox(panel, I

[Python] wx python 基本控件 (转)

转自:http://www.cnblogs.com/wangjian8888/p/6028777.html 一.静态文本控件 wx.StaticText(parent, id, label, pos=wx.DefaultPosition,    size=wx.DefaultSize, style=0, name="staticText") wx.StaticText构造函数的参数 parent:父窗口部件. id:标识符.使用-1可以自动创建一个唯一的标识. label:你想显示在静

微信小程序 之wx.getLocation()获取地理信息中的小坑

提到wx.getLocation()这个方法,大家都知道是获取地理信息的 今天用这个方法获取定位经纬度后传给后台取得附近markers标记集合, 在开发工具上都正常有标记出现 ,但是在手机测试时,死活没有显示 , 最后发现是在手机测试时,后台已经报参数不合法抛出错误通知了 原因是因为,在开发工具上获取经纬度只有小数点后5位,而我们传给后台接口的数据规定只有后6位, 这在开发工具上是正常可以请求成功,但是在手机上测试时,定位更加精确,例如"longitude":"121.534

设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)

这个API解决了过去一个长久以来无法解决的问题,如何让用户重复授权: 打开小程序的设置界面:就是主动调取授权 目前资料极少,但是已经可以让大家先看看了: 官方文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/setting.html#opensettingobject 基础库版本 1.1.0 开始支持,低版本需做兼容处理 调起客户端小程序设置界面,返回用户设置的操作结果 目前的授权影响范围: scope 说明: scope 对应接口 scope