javascript

    'use strict';
    import FingerPrint from 'fingerprintjs2';

    var fingerprint = new FingerPrint();
    var dfp = fingerprint.get(function(dfp, components){
        console.log(dfp);
        return dfp;
    })

    console.log('dfp' + dfp);


```

在这里,结果是:
jsdfpundefined67bf907b9447de2c085b9fdf3dd1ad23
第二个console.log首先返回undefined,第二个返回第二个。

我想返回正确的结果而不是未找到?我怎么能够 ?

谢谢!

最佳答案

Fingerprintjs2库是异步的。您的代码正在运行并按顺序执行,因此console.log('dfp' + dfp);行将在jsfingerprint2库完成计算之前执行,这就是为什么您随后看到预期输出的原因。

.get()方法将在计算出指纹后返回指纹,因此,如果要将其存储在变量中,则应使用全局变量:

'use strict';
import FingerPrint from 'fingerprintjs2';

var fingerprint = new FingerPrint(),
dfp;

fingerprint.get(function(result, components){
    dfp = result;
    console.log('Fingerprint: ' + dfp);
});

关于javascript - 指纹js2如何获取get函数结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37313385/

10-10 15:21