我需要了解回调函数的工作原理。
我用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
  })
})

09-16 23:49