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/