[英]¿Someone can explain to me Callback in JavaScript? - beginner
我是這個世界的初學者,我覺得自己有點迷路了。
我在 udemy 買了一門課程,這就是例子:
function add( a, b, cb) {
const r = a + b
cb(r)
}
function callback(result) {
console.log('This is the result', result);
}
add(2, 3, callback)
這是我不明白的部分:cb(r) - 為什么“cb”在我的代碼的那部分(添加(a,b, cb ))並稍后重復? 我想知道我們將 const r 的結果保存在 Cb(r) 中,但我不知道為什么在兩個部分中
為什么當我在我的終端中運行它時,它首先回調 function 並添加 function?
如果有人可以向我解釋這里發生了什么,我將不勝感激
我只是想知道它是如何工作的,因為它聽起來在這條路上很重要,它運行但我不知道為什么
您編寫function add和function callback的順序無關緊要。 它們只是定義,即關於如何做某事的食譜。 但是除非調用它們,否則僅通過編寫函數實際上什么也做不了。
通過寫function add(a, b, cb) ,你只是說“我正在寫一個名為 add 的 function,它應該接收 3 個參數作為輸入,我將它們命名為 a、b 和 cb。 ”但你不知道還不知道它們的價值是多少。 您只需以這種方式命名它們,以便能夠對它們進行操作。 當你調用cb(r)時,你基本上不知道 cb 是什么,你只知道它是一個稍后要完成的 function。
基本上你的代碼不會按照你寫的順序執行。
Javascript 在讀取add(2, 3, callback)時開始執行操作。 此時它明白它需要執行function add ,你給它三個參數,其中兩個是數字,第三個是 function。但是它還沒有執行function 回調,它只知道它姓名。 現在,它只是搜索function add所在的代碼,然后首先執行此代碼,其中a=2、b=3 和 cb=callback 。
一旦找到它,就會跳轉到function add的開頭,創建一個新常量 r並將a+b放入其中。 當它看到Cb(r)時,它采用您提交給它的第三個參數,在本例中為function 回調,並使用參數r調用它。 因此,它再次跳轉到 function 回調的開頭,並使用參數r執行它。
在此示例中,無需使用回調 function,這只是說明回調概念的基本示例。 但是正如您帖子的評論中所說,您可能需要編寫第二個回調 function,例如:
function anotherCallback(result) {
console.log('This is ANOTHER result', result);
}
然后你可以打電話
add(2, 3, callback)
add(4, 5, anotherCallback)
無需重新編寫 function 添加。
我已嘗試使其盡可能詳細,我希望這是清楚的,但如果不清楚,請不要猶豫,提出更多問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.