我的问题是:如何全局编辑变量"token“?我想重用该函数中定义的var的新值。我知道这不可能那么容易,但有没有办法适应它,这样我就可以重用新的值?
我现在知道,我真的不能改变这一点,但如果我重用“令牌”,例如:
console.log(token);
返回的结果是"variable is undefined",但我在顶部定义了它。
我的代码如下:
//libary:
var Particle = require('particle-api-js');
//neues Objekt:
var particle = new Particle();
//username, psw. etc definieren:
var userName = 'email.adress';
var passWord = 'passssword';
//Scriptvariablen:
var token;
//Funktionen:
function logontoparticle(){
var test = particle.login({username: userName, password: passWord});
test.then(
function (data) {
token = data.body.access_token;
console.log('Logged In: with', token);
},
function (err) {
console.log('LoggingIn Feeehlgeschalgen', err);
}
);
}
logontoparticle();
console.log("at end", token);
最后,我得到的结果是:
"at end undefined"
"token1234567891010201239" (e.g.)
我不想使用: mockLogin和Promise...我想避免这种情况...谢谢!
发布于 2018-06-02 05:44:37
您的logontoparticle
函数执行异步代码,这意味着您不知道它何时结束,而且,由于闭包的原因,您的token
变量实际上正在被写入,问题是您在异步代码运行之前打印。
您可以尝试如下所示:
var token;
//Funktionen:
function logontoparticle() {
var test = particle.login({ username: userName, password: passWord });
return test.then(
function(data) {
token = data.body.access_token;
console.log("Logged In: with", token);
},
function(err) {
console.log("LoggingIn Feeehlgeschalgen", err);
}
);
}
logontoparticle().then(function() {
console.log("at end", token);
});
附注:我希望你能通过,同时你也应该关注以下主题:
https://stackoverflow.com/questions/50651238
复制相似问题