在之前的《小程序節點查詢方法: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”,那么該查詢方法是異步回調無疑了
友情鏈接:
技術博客