簡體   English   中英

在 2 個數組之間傳遞時,值變為未定義

[英]Value becomes undefined when passing between 2 arrays

我正在使用 nodejs 作為我的 React 應用程序的服務器端,我想發送目錄中具有 Root_Path 值的文件名稱數組。 我使用 readdir () 取名字並將它們放入 List_Of_File 。

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});

router.get("/", function(req, res, next) {
  res.send(List_Of_File);

我得到的結果是["3","4","5"]

但是當我嘗試將所有值傳遞給List_Of_Note ,這些值是未定義的,當我發送List_Of_Note時我得到的結果是 [] 。

我檢查List_Of_File中的值類型,它是一個字符串。 你能幫我解決這個問題嗎?

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});

這兩套線不是同步的。 您將不得不等到為readdir方法調用回調。 由於您沒有等待,因此您總是得到空數組。 您可以在回調中移動推送邏輯或將其轉換為基於 Promise/async/await 的。

暫無
暫無

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

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