node.js 在类函数上使用回调

黑夜

我想将值返回给变量,所以我尝试使用 return 来编写它,但这没有用

class move {
    getLastMove(id){


        var MoveRequest = "SELECT * FROM users ORDER BY id";

        var query = connection.query(MoveRequest, function(err,rows, result) {
        //console.log('rows', rows.length);
        if (rows.length == 0) { // evaluate the count
            return ("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
        }
        if (rows.length > 0) {
            for (var i in rows) {


                console.log('getLastMove',id);
                var move = rows[i].MoveString; 
                if (rows[i].GameId == id){

                    return move;
                }

            }
        }



        //console.log("Total Records:- " + result[0].total);

        });


            var move="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
            return move;


    }


};

所以我尝试使用这样的回调

class move {

        getLastMove(id){


            var MoveRequest = "SELECT * FROM users ORDER BY id";

            var query = connection.query(MoveRequest, function(err,rows, result,callback) {
            //console.log('rows', rows.length);
            if (rows.length == 0) { // evaluate the count
                callback ("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
            }
            if (rows.length > 0) {
                for (var i in rows) {


                    console.log('getLastMove',id);
                    var move = rows[i].MoveString; 
                    if (rows[i].GameId == id){

                        callback(move);
                    }

                }
            }



            //console.log("Total Records:- " + result[0].total);

            });


                var move="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
                callback(move);


        }


    };

但是当运行回调示例时,我收到此错误

类型错误:回调不是函数

阿布冈瓦尔

您以错误的方式使用回调。将回调传递给 getLastMove() :

class move {
getLastMove(id, callback){
    var MoveRequest = "SELECT * FROM users ORDER BY id";

    var query = connection.query(MoveRequest, function(err,rows, result) {
        if(err) {
            return callback(err)
        }

        if (rows.length == 0) { // evaluate the count
            return callback (null, "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
        }
        if (rows.length > 0) {
            for (var i in rows) {
                if (rows[i].GameId == id){
                    callback(null, rows[i].MoveString);
                }
            }
        }
    });
}

};

假设moveObj是一个类型的对象move,调用函数getLastMove如下:

var moveObj = new move();
moveObj.getLastMove(34, function (err, data) { // 34 is the value of `id`
    if(err) {
        // There was some error in execution of getLastMove; var `err` has info regarading that. 
        return console.log("There was some err while executing getLastMove", err);
    }

    // If no Error, process your `data` accordingly
    console.log("Data returned by callback", data);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js使用回调函数更改HTML代码

来自分类Dev

Node.js用回调函数循环

来自分类Dev

Node.js用回调函数循环

来自分类Dev

如何使用回调从node.js函数返回值?

来自分类Dev

在node.js中使用回调的正确方法

来自分类Dev

在node.js中使用回调循环

来自分类Dev

如果使用回调,Node JS避免其他情况

来自分类Dev

Node.js - 无法在 if 语句中使用回调

来自分类Dev

使用Mocha在node.js函数上测试错误

来自分类Dev

Node.js中的PassportJS永远不会调用回调函数

来自分类Dev

Node.js中的PassportJS永远不会调用回调函数

来自分类Dev

范围问题在node.js中的循环内调用回调函数

来自分类Dev

Node.js如何使用函数的回调结果

来自分类Dev

Node.js-在回调函数中使用数据

来自分类Dev

未使用回调时函数返回未定义,使用回调时,JS 表示函数未定义

来自分类Dev

node.js回调函数dynamodb

来自分类Dev

来自node.js的回调函数

来自分类Dev

回调函数问题Node.js

来自分类Dev

node.js中的箭头函数上下文

来自分类Dev

Node js,函数执行

来自分类Dev

Node.JS函数返回异步回调函数的值

来自分类Dev

我应该在自定义函数中使用回调模式吗?节点js

来自分类Dev

使用回调函数时节点js中响应对象的范围

来自分类Dev

我应该在自定义函数中使用回调模式吗?节点js

来自分类Dev

async.map不会在Node.js中调用回调

来自分类Dev

使用Node.js和回调函数的代码是否与Java线程相同?

来自分类Dev

用户定义的回调函数在node.js中使用线程池吗?

来自分类Dev

使用生成器函数next()作为node.js中的回调

来自分类Dev

如何使用Node.js在外部范围内定义回调函数?

Related 相关文章

热门标签

归档