[英]Javascript: Change Global Variables but in a function without using “Promise”
我的問題是:如何全局編輯變量“令牌”? 我想重用該函數中定義的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 ...我想避免這種情況...謝謝!
您的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);
});
ps我希望你通過,也應該看看以下主題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.