簡體   English   中英

為什么我的變量沒有從 JS function 獲得賦值?

[英]Why my variable not getting assigned value from JS function?

** 放置我的實際 JS 片段”我在一個 JS 文件中有一個小的 JS function,如下所示

   function interest(customerRef) {
   try { 
      var customerInterest = "";         
      var baseUrl="https://test/"
      var url = baseUrl+customerRef           
      var username = "username";
      var password = "password";

      var request = new XMLHttpRequest();
      request.open("GET", url);
      request.setRequestHeader("Authorization", "Basic " + btoa(username+":"+password))
      request.send()
      request.onload=()=>
      {               
           if(request.status==200)
           {                    
                var guestJson = JSON.parse(request.response);                
                var sessions = guestJson.sessions || [];               
                var interest = sessions.filter(session => session.events)
                     .flatMap(session => session.events)
                     .filter(event => event.type === "SEARCH")
                     .map(event => event.arbitraryData.interest)[0];     
                customerInterest = interest;   
                alert("---"+customerInterest);
           } 
           else
           {
                console.log(`error ${request.status} ${request.statusText}`)
           }
      }  
      alert(customerInterest);
      return customerInterest;
 }
 catch (error) {
      console.error(error);
 }     
 }

我在我的 HTML 文件中調用上述 function 如下

  customerRef = "6a789727"          
  var interest1 = "";
  interest1 = interest(customerRef);
  console.log(interest1);

在返回之前,我在“ console.log(interest1) ”或“ alert(customerInterest); ”中沒有得到任何值。 但是我在“ alert("---"+customerInterest); ”中得到了預期值

不,你會得到一個錯誤,而不僅僅是undefined

跑步

var test = "";
test = test()
console.log(test)

會產生一個

Uncaught TypeError: test is not a function

在第 2 行,因為您剛剛將test定義為字符串 ( "" ) 而不是 function 您可以調用。

相反,請嘗試以下操作:

function greet() {
 return "Hi";
}
var test = "";
test = greet();
console.log(test);

如果您在控制台中對此進行評估,這將打印出來

Hi
undefined

; 后者undefined來自console.log()的返回值;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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