我的问题是:如何在全局范围内编辑变量“token”?我想重用该函数中定义的var的新值。我知道这不容易,但有没有办法适应,所以我可以重用新的价值?
我现在知道,我无法真正改变它,但如果我重复使用“令牌”,例如:
console.log(token);
返回是“变量未定义”,但我在顶部定义。
我的代码如下:
//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 ......我想避免这种情况......谢谢!
答案 0 :(得分:3)
你的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);
});
变量确实在写,问题是你在异步代码运行之前打印。
您可以尝试以下方式:
myCellArray ={2,2,1,1,{1,1,2,2,{1,2,{1,1,1,1,1}},2,2},{1,2,{1,2,2,2,2,2},2},{1,1},2,2,2,2,1,1,1,1,1};
P.S。我希望你通过,你也应该看看以下主题: