回调函数JS

时间:2019-03-04 16:08:07

标签: javascript

我正在努力进行这项工作,我在做什么错了?

函数one完成后,我希望能够做些事情。

function one() {
    // do stuff
}

function main() {

    //script
    //script
    one(function() {
      // do some stuff when "one" is completed
      console.log("one is completed");
    });

} 

为什么这不触发回调? (控制台中没有日志条目)

3 个答案:

答案 0 :(得分:3)

您需要将回调作为参数传递并像正常函数一样调用

function one(a, b, fn) {
    // do staff
    if (fn) {
      fn()
    }
}

function main() {

    //script
    //script
    one(5, 6, function() {
      // do some stuff when "one" is completed
      console.log("one is completed");
    }

} 

答案 1 :(得分:0)

由于one不会发生回调,因此它将被忽略并且永远不会回叫。

function one(callback) { // <- take a callback
   callback(); // <- call back the callback "callback"
 }

答案 2 :(得分:0)

您需要在one()函数内部传递回调函数。然后您需要调用该函数:

const one = (cb) => {
    console.log('in one()');
    cb();
}

const main = () => {
    one(() => {
        console.log('one() is completed');
    });
} 

main();

输出:

in one()
one() is completed