Javascript从承诺中设置全局变量

Javascript从承诺中设置全局变量,javascript,html,css,promise,Javascript,Html,Css,Promise,我试图调用一个执行承诺链的函数(fetchdat),这个承诺链应该通过将全局变量(fromdetails)设置为执行返回的结果(AccountDetails)来结束 当我尝试将fromdetails登录到控制台时,我得到一个未定义的错误 我读了一些书,似乎你不能从承诺中设置全局变量,但是什么是使(fromdetails)等于我承诺结果的最佳方法 // This section decalres all variables to be parsed Back var username = ""

我试图调用一个执行承诺链的函数(fetchdat),这个承诺链应该通过将全局变量(fromdetails)设置为执行返回的结果(AccountDetails)来结束

当我尝试将fromdetails登录到控制台时,我得到一个未定义的错误

我读了一些书,似乎你不能从承诺中设置全局变量,但是什么是使(fromdetails)等于我承诺结果的最佳方法

// This section decalres all variables to be parsed Back 

var username = "";
var password = "";
var SessionID = "BE302FC72B1546A89";
var IuserID = "1107385";
var AcctDetails = "";

//from account details go here

var fromacctname = "";
var fromacctnumber = "";
var fromacctHIN = "";
var fromacctID;
var fromdetails;



// This function retrieves accountID based on account number 

function AccountID(AccountNumber) {

    return new Promise(function (resolve, reject) {

        // This HTTP request retrieves the account ID based on an account number 
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://autobots.avanteos.com.au/py/AccountID.py?SessionId=' + SessionID + '&UserId=' + IuserID + '&AccountNumber=' + AccountNumber, false)
        xhr.send()
        console.log(xhr.responseText);
        resolve(xhr.responseText);
    });

};

// this function is used to fetch the account details taking acctid as an input 

function AccountDetails(AcctID) {

    return new Promise(function (resolve, reject) {

        // This is a HTTP request to fetch the account details 
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://autobots.avanteos.com.au/py/CGiscript.py?SessionId=' + SessionID + '&UserId=' + IuserID + '&AccountID=' + AcctID, false)
        //xhr.open('GET', 'http://autobots.avanteos.com.au/py/CGiscript.py?SessionId=48B18C24724B488B&UserId=1107385&AccountID=3672253', false)
        xhr.send()
        var jsonresponse = JSON.parse(xhr.responseText);
        resolve(jsonresponse);

    });

}


// this function goes to get our data 

function fetchdat(callback) {

    //this code kicks off the details search 

    AccountID("8308184").then(function (result) {
        fromacctID = result;
        console.log(fromacctID);
    }).then(function () {
        return AccountDetails(fromacctID)
    }).then(function (result) {
        fromdetails = result; // this is where i set the global variable equals to the result returned from Accountdetails
    })

    console.log(fromdetails);


}

根本不要使用全局变量。相反,将所有依赖于值的逻辑放在
中。然后
我有一个函数,它需要来自全局变量的输入,我会在中执行该函数吗?是的,它就是这样工作的