刘勇虎的官方网站
网站内容包含大前端、服务器开发、Python开发、iOS开发、Android开发、网站维护等技术文章。专注于分享技术经验,职业心得体会,IT优秀文章与教程创作。
Stay hungry,Stay foolish,Stay young
题记
在之前的《小程序节点查询方法: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”,那么该查询方法是异步回调无疑了