Javascript 如何将异步调用中的数据插入push方法

Javascript 如何将异步调用中的数据插入push方法,javascript,variables,asynchronous,push,matomo,Javascript,Variables,Asynchronous,Push,Matomo,我是电脑的使用者。它创建了访问我的站点的用户的指纹。我也是开源分析工具Piwik的用户。我正在尝试实现它的一个特性- 我的代码如下所示: var client = new ClientJS(); var fingerprint = client.getFingerprint(); var _paq = _paq || []; _paq.push(['setUserId', fingerprint]); _paq.push(['trackPageView']); 而且它不起作用。对于UserI

我是电脑的使用者。它创建了访问我的站点的用户的指纹。我也是开源分析工具Piwik的用户。我正在尝试实现它的一个特性-

我的代码如下所示:

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

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

而且它不起作用。对于UserID字段,上面代码插入到我的数据库中的数据为“NULL”。这可能是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']);
});

注意,我只是猜测返回的数据是result和err,但它可能在对象上。另外,我猜它接受回调函数作为一个参数。

有一个类似的问题。getFingerprint函数可能是异步的。是的,是我问的。现在我的问题是——有没有办法绕过这个事实?无论如何都要发送这些数据。你的案子在这里运作良好