[英]async not working as expected?
我有一個聚合物元素,該元素通過“ polymer-jsonp”從電子表格中獲取數據。 數據到達后,我將更新元素的內容,並希望獲得其顯示的大小。
我希望在完全渲染圖像和內容后調用異步。 ( http://www.polymer-project.org/docs/polymer/polymer.html#asyncmethod )
如下所示調用refresh似乎返回沒有內部圖像的div大小。 ……
researchChanged: function() {
if(this.research){
this.$.title.innerHTML = this.research.feed.entry[0].gsx$title.$t;
// call refresh
this.async(this.refresh);
}
}
延遲調用刷新似乎會返回預期的大小。
this.async(function() {
this.refresh();
}, null, 10);
這是預期的行為嗎? 我們可以以某種方式最小化此異步延遲嗎?
謝謝
async
所做的只是等待JavaScript產生線程。 不能保證完成任何其他特定的異步任務。
例如,每當您創建一個<img>
元素時,該圖片完全加載時就不確定(因為瀏覽器可能必須通過網絡來加載像素)。 您必須先聽元素的onload
事件才能知道。
現在,有時我們談論微任務 。 async
方法和微任務結合在一起。 考慮微任務的一種簡單方法是在async
操作發生之前將完成的所有事情。
例如,如果調用async
,則可以確保所有數據傳播(由於綁定和觀察者)將在異步方法執行之前發生。 變異觀察者和未決事件也都在單個微任務中解決。
您是否使用任何聚合物布局? 在我的情況下,我不得不聽布局事件之一(聚合物布局,聚合物網格布局),當布局完成時觸發
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.