2015-12-19 45 views
0

我是https://github.com/jackspirou/clientjs的用戶。它創建訪問我的網站的用戶的指紋。我也是開源分析工具Piwik的用戶。我試圖實現其功能之一 - http://developer.piwik.org/guides/tracking-javascript-guide#user-id如何將異步呼叫數據插入推送方式

我的代碼如下所示:

var client = new ClientJS(); 
var fingerprint = client.getFingerprint(); 

var _paq = _paq || []; 
_paq.push(['setUserId', fingerprint]); 
_paq.push(['trackPageView']); 

而且這是行不通的。上述代碼插入到我的數據庫中的數據對於UserID字段爲「NULL」。這可能是getFingerprint()異步的問題。我的問題是 - 如何繞過它?

+0

還有類似的問題。 getFingerprint函數可能是異步的。 – Will

+0

是的,我是那個問他的人。現在我的問題是 - 有什麼辦法可以繞過這個事實嗎?無論如何發送這些數據。 – loup4

+0

您的情況在此處正常工作https://jsfiddle.net/kw2p51s0/ –

回答

0

您必須查看client.getFingerprint()文檔。最有可能是這樣的:

client.getFingerprint(function(result, err) { 
    // check for err 
    // do something with result 
    var _paq = _paq || []; 
    _paq.push(['setUserId', result]); 
    _paq.push(['trackPageView']); 
}); 

注意,我只是猜測返回數據,結果和錯了,但它可能是對的對象。此外,我猜它接受回調函數作爲一個單一的參數。