簡體   English   中英

回調函數在原始函數之前執行

[英]Callback function is getting executed before the original function

我正在編寫用於演示回調函數的代碼段。 我有一個函數alpha,在其中傳遞了函數beta作為回調。 我假設必須執行第一個alpha,在完成所有工作之后,必須執行beta。 為什么我看到beta首先被執行,按照回調,它們在所有工作完成后即會執行-我從中學到了。

 function alpha() { alert('hi'); } function beta() { alert('hello'); } alpha(beta()); 

期望:

嗨,你好

結果:

你好,然后你好

這不符合您的想法:

alpha(beta());

這將立即調用beta ,然后將beta()結果傳遞給alpha的調用。 而且由於beta不返回任何內容,因此結果是undefined

您想要的是將函數本身作為回調發送,而不是執行該函數的結果:

alpha(beta);

此外 ,在alpha您實際上需要調用回調:

function alpha(callback){
    alert('hi');
    callback();
}

暫無
暫無

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

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