簡體   English   中英

Facebook分享計數,暫停直到回調函數完成

[英]Facebook shares count, pause until callback function finishes

我試圖在一頁上獲取有關許多URL的Facebook共享數。 為此,我為每個用戶調用http://graph.facebook.com 因為我是在循環中執行此操作,所以我遇到了問題,因此我的循環在回調函數完成之前就已執行,因此遇到了麻煩。 我的代碼看起來像這樣

    $('span.share_counter').each(function() {
            site_url=$(this).attr('id');
            getJSON(site_url, function(err, data) {
                alert(site_url);
            });
        });

有什么需要讓循環等到getJSON的回調函數完成然后再繼續的嗎,還是我以錯誤的方式來處理?

基本上沒有做您想要的事情的好方法。 而且,您不應該嘗試這樣做。 Javascript在事件循環上運行,這意味着如果您阻止了一個特定的動作,則整個UI都會凍結。

回調的創建允許UI通過允許其他作業轉向流程來繼續。 getJson進行回調是有原因的。 它可能會阻塞很長時間,這對於事件循環來說將是可怕的。

您應該嘗試重組代碼,以便不需要getJson()調用即可立即返回。

您可能想要做什么:

$('span.share_counter').each(function() {
    var curElement = $(this);
    var site_url = curElement.attr('id');
    getJSON(site_url, function(err, data) {
        modifyElement(curElement, data)
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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