亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

控制臺中存在完整數組,但 array.length = 0

控制臺中存在完整數組,但 array.length = 0

MMTTMM 2022-05-26 14:50:48
我試圖理解為什么,當我將 axios 調用的結果分配給一個變量時,控制臺記錄該變量將顯示完整的對象,但安慰它的長度返回零。因此,當我嘗試在結果上運行 forEach 時,沒有愛可以擁有。getNumberOfCollections() {  let results = queries.getTable("Quality"); // imported function to grab an Airtable table.  console.log(results); // full array, i.e. ['bing', 'bong', 'boom']  console.log(results.length); // 0  results.forEach((result) =>{ // no love });}
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

當您 console.log 數組時,很可能該數組仍然是空的。


console.log(results); // full array, i.e. ['bing', 'bong', 'boom']

console.log(results.length); // 0

運行時console.log(results.length),它正在執行,這就是打印出來console.log(0)的原因。0


運行時,console.log(results)它將稍后打印出數組。該數組稍后在最終運行時填充。(所以 console.log 不是同步的——稍后它會打印出一些東西。)resultsconsole.log()


你可以試試


console.log(JSON.stringify(results));

并且您可能會看到一個空數組,因為JSON.stringify(results)立即評估它是什么并在當前時間將其轉換為字符串,而不是稍后。


看起來您正在獲取一些數據。正確的方法通常是通過回調或承諾的履行處理程序:


fetch(" some url here ")

  .then(response => response.json())

  .then(data => console.log(data));

因此,在調用回調或“履行處理程序”之前,您不會擁有數據。如果你console.log(results.length)當時,你應該得到正確的長度。(數據就在那里)。


查看完整回答
反對 回復 2022-05-26
  • 1 回答
  • 0 關注
  • 232 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號