小编kas*_*par的帖子

nodejs和非阻塞的噩梦

我目前正在使用node.js和MySQL开发API.我是这个非阻塞的新手,我有一个问题.我正在使用节点和MySQL模块.

假设我们有这样的函数:

function doQuery(sql, callback) {
    connect(); //does the Client.connect()
    client.query(sql, function(err, results, fields) {
        if (err) {
            errorLog.trace(err, __filename);
            throw err;
        } else {
            logger.trace('DATABASE ACCESS: {query: ' + sql + '} result: OK', __filename);
        }
        client.end();

        callback(results);
    });
}
Run Code Online (Sandbox Code Playgroud)

一切运行正常,回调处理值的返回,但有些东西困扰我.我的浏览器是什么,直到响应回来,我不知道这是因为在此期间节点实际上是被阻止的.

那么,我怎么知道一个操作是否实际阻塞了我的节点进程?我认为当您将回调传递给函数时,节点会自动处理它并将此回调的执行放在事件循环的队列中.但我真的不确定

这一切对你有意义吗?

mysql nonblocking node.js

3
推荐指数
1
解决办法
2618
查看次数

标签 统计

mysql ×1

node.js ×1

nonblocking ×1