[英]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.