91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js為什么要回調

發布時間:2021-12-14 11:44:43 來源:億速云 閱讀:203 作者:柒染 欄目:開發技術

本篇文章為大家展示了js為什么回調?,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

在Javascript中,函數是第一類對象,這意味著函數可以像對象一樣按照第一類管理被使用。既然函數實際上是對象:它們能被“存儲”在變量中,能作為函數參數被傳遞,能在函數中被創建,能從函數中返回。因為函數是第一類對象,我們可以在Javascript使用回調函數。下面我們一起了解一下回調。

簡單地講:回調是指在另一個函數執行完成之后被調用的函數

稍復雜地講: 在 JavaScript 中,函數也是對象。因此,函數可以傳入函數作為參數,也可以被其他函數返回。這樣的函數稱為高階函數。被作為參數傳入的函數就叫做回調函數。

下面說說為什么我們需要回調?

有一個非常重要的原因——JavaScript是事件驅動的語言。這意味著,JavaScript不會因為要等待一個響應而停止當前運行,而是在監聽其他事件時繼續執行。

來看一個基本的例子:

function first(){  console.log(1);}function second(){  console.log(2);}first();second();

正如你所料,first 函數首先被執行,隨后 second 被執行 —— 控制臺輸出下面內容:

// 1// 2

但如果函數 first 包含某種不能立即執行的代碼會如何呢?

例如我們必須發送請求然后等待響應的 API 請求?為了模擬這種狀況,我們將使用 setTimeout,它是一個在一段時間之后調用函數的 JavaScript 函數。我們將函數延遲 500 毫秒來模擬一個 API 請求,新代碼長這樣:

function first(){// 模擬代碼延遲  setTimeout( function(){console.log(1);  }, 500 );}function second(){  console.log(2);}first();second();

現在理解 setTimeout() 是如何工作的并不重要,重要的是你看到了我們已經把 console.log(1); 移動到了 500 秒延遲函數內部。那么現在調用函數會發生什么呢?

first();second();// 2// 1

即使我們首先調用了 first() 函數,我們記錄的輸出結果卻在 second() 函數之后。

這不是 JavaScript 沒有按照我們想要的順序執行函數的問題,而是 JavaScript 在繼續向下執行 second() 之前沒有等待 first() 響應的問題。

所以為什么給你看這個?

因為你不能一個接一個地調用函數并希望它們按照正確的順序執行。

回調正是確保一段代碼執行完畢之后再執行另一段代碼的方式。

上述內容就是js為什么回調?,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

依安县| 色达县| 松江区| 江川县| 西林县| 子长县| 赤壁市| 崇义县| 桦南县| 富民县| 太和县| 措美县| 张家港市| 南安市| 枣强县| 红安县| 尼玛县| 阜平县| 孝感市| 通山县| 老河口市| 米林县| 榆中县| 扬中市| 莆田市| 阿鲁科尔沁旗| 神农架林区| 铅山县| 侯马市| 中西区| 西林县| 榆树市| 贵州省| 舒城县| 新竹县| 临湘市| 杨浦区| 秦皇岛市| 额尔古纳市| 辽阳市| 仙居县|