javascript - 回调不是一个函数吗?

标签 javascript callback

我知道这个问题已经被问过数百次了,但是我之前写过大量的回调函数,我想我只是对我的问题有点盲目/

我有一个功能:

function firstSend(){
    client.write(Buffer.from([0x5C,0x57,0x31,0x32,0x33,0x34,0x2F]));

    check(function(msg){
        if(msg == true){
            console.log("Lets go");
        }
    });
}

通过回调调用函数check

检查函数完成后返回 true:

function check(callback) {
    let m;
    if(message != null) m = message.trim();

    if(m != "OK"){
        setTimeout(check, 1000);
        return;
    }
    return callback(true);
}

一切正常,直到它尝试执行回调,此时它告诉我它不是一个函数。

我已经记录了回调并将其记录为一个函数,所以我有点困惑

最佳答案

您没有在 setTimeout 中传递回调

setTimeout(function () {
    check(callback)
}, 1000);

而不是

setTimeout(check, 1000);

或者,您也可以使用bind()

setTimeout(check.bind(null, callback), 1000);.

关于javascript - 回调不是一个函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003552/

相关文章:

javascript - 将 Javascript 变量传递给 PHP

callback - 在 Rust 中实现多个可变(静态分配、静态分派(dispatch)等)回调的正确方法是什么?

iphone - 在 iOS/iPhone 中等待回调函数返回

c++ - 在 Delphi 应用程序中使用 C++ DLL 回调函数

java - 使用 ActivityLifecycleCallbacks 自动记录 Android 生命周期事件?

javascript - 使用 jQuery 并行执行多个 promise 后等待完成

javascript - 原型(prototype)继承调用构造函数两次

javascript - 显示阵列中的 6 个(不同的)图像,不显示重复项并每 x 秒重新加载一次

javascript - 正则表达式中可选的空格?

javascript - 将鼠标悬停在父列表项上时更改链接颜色时的奇怪行为