簡體   English   中英

Javascript:在不使用“ Promise”的情況下在函數中更改全局變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM