1

```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 首先返回未定义,第一个控制台排在第二位。

我想返回正确的结果而不是underfind?我怎样才能 ?

谢谢!

4

1 回答 1

-1

指纹js2 库是异步的。您的代码正在按顺序运行和执行,因此该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);
});
于 2016-12-30T21:08:53.580 回答