如何将异步调用中的数据插入到 push 方法中
How to insert data from async call into push method
我是 https://github.com/jackspirou/clientjs. It creates fingerprint of user visiting my site. I am also user of Piwik, open source analytic tool. I'm trying to implement one of its feature - 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']);
而且它不起作用。上面的代码插入到我的数据库中的数据是 "NULL" 的 UserID 字段。这可能是 getFingerprint() 异步的问题。我的问题是 - 如何绕过它?
您必须查看 client.getFingerprint() 文档。很可能是这样的:
client.getFingerprint(function(result, err) {
// check for err
// do something with result
var _paq = _paq || [];
_paq.push(['setUserId', result]);
_paq.push(['trackPageView']);
});
请注意,我只是猜测返回数据作为结果和错误,但它可能在对象上。另外,我猜它接受回调函数作为一个参数。
我是 https://github.com/jackspirou/clientjs. It creates fingerprint of user visiting my site. I am also user of Piwik, open source analytic tool. I'm trying to implement one of its feature - 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']);
而且它不起作用。上面的代码插入到我的数据库中的数据是 "NULL" 的 UserID 字段。这可能是 getFingerprint() 异步的问题。我的问题是 - 如何绕过它?
您必须查看 client.getFingerprint() 文档。很可能是这样的:
client.getFingerprint(function(result, err) {
// check for err
// do something with result
var _paq = _paq || [];
_paq.push(['setUserId', result]);
_paq.push(['trackPageView']);
});
请注意,我只是猜测返回数据作为结果和错误,但它可能在对象上。另外,我猜它接受回调函数作为一个参数。