簡體   English   中英

異步無法正常工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM