在之前的《小程序节点查询方法: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”,那么该查询方法是异步回调无疑了
友情链接:
技术博客