我需要了解回调函数的工作原理。
我用2个函数编写了这个小脚本:
function fn1(callback) {
alert('fn1');
callback();
}
function fn2() {
alert('fn2');
}
fn1(fn2); //display 'fn1' then 'fn2'
现在,我想使用“ fn3”功能更新脚本,以显示“ fn1”,“ fn2”,“ fn3”。我尝试了这个:
function fn1(callback) {
alert('fn1');
callback();
}
function fn2(callback) {
alert('fn2');
callback();
}
function fn3() {
alert('fn3');
}
fn1(fn2(fn3));
但先付清“ fn2”,“ fn3”,“ fn1”,然后记录错误(“回调不是函数”)。
任何想法 ?怎么了 ?
在此先感谢Florent。
最佳答案
为了先执行f1
,然后执行f2
,然后执行f3
,您需要创建一个回调函数,以确保函数将逐步执行。
错误:
fn1(fn2(fn3))) // this first call f2 with f3 as parameter then calls f1 with its result
对:
fn1(function () { // call f1
fn2(function () { // then call f2 after f1
fn3(); // then call f3 after f2
})
})