```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);这里的结果是:js dfpundefined 67bf907b9447de2c085b9fdf3dd1ad23 --第二个console.log首先返回未定义的console.log,第一个控制台返回第二个。
我想返回正确的结果而不是找不到?我怎么能?
太棒了!
发布于 2016-12-30 21:08:53
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);
});https://stackoverflow.com/questions/37313385
复制相似问题