首頁  >  文章  >  web前端  >  nodejs回調地獄是什麼

nodejs回調地獄是什麼

WBOY
WBOY原創
2022-03-04 16:07:051891瀏覽

在nodejs中,「I/O」的操作結果基本上都需要在回呼函數中處理,當處理多個事件時回呼函數就會一層層的嵌套,這就是回調地獄;也就是一個非同步請求套著一個非同步請求,一個非同步請求依賴另一個的執行結果,使用回呼的方式相互嵌套的情況。

nodejs回調地獄是什麼

本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。

nodejs回呼地獄是什麼

nodejs中I/O的操作結果基本上都需要在回呼函數中處理,當處理多個事件時回呼函數就會一層層的嵌套,這就是回調地獄。

一個非同步請求套著一個非同步請求,一個非同步請求依賴另一個的執行結果,使用回呼的方式相互嵌套

Nodejs最大的亮點就在於事件驅動, 非阻塞I/O 模型,這使得Nodejs具有很強的並發處理能力,非常適合編寫網路應用。在Nodejs中大部分的I/O操作幾乎都是非同步的,也就是我們處理I/O的操作結果基本上都需要在回呼函數中處理,例如下面的這個讀取檔案內容的函數:

fs.readFile('/etc/passwd', function (err, data) {
  if (err) throw err;
  console.log(data);
});

那,我們讀取兩個文件,將這兩個文件的內容合併到一起處理怎麼辦呢?大多數接觸js不久的人可能會這麼幹:

fs.readFile('/etc/passwd', function (err, data) {
  if (err) throw err;
  fs.readFile('/etc/passwd2', function (err, data2) {
    if (err) throw err;
    // 在这里处理data和data2的数据
  });
});

那要是處理多個類似的場景,豈不是回呼函數一層層的嵌套啊,這就是大家常說的回調金字塔或回調地獄的問題。

推薦學習:《nodejs影片教學

以上是nodejs回調地獄是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn