В настоящее время я разрабатываю API с использованием node.js и MySQL. Я новичок в этом неблокирующем материале, и у меня есть вопрос. Я использую узел и модуль 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);
});
}
Все работает нормально, обратный вызов обрабатывает возврат значений, но есть кое-что, что беспокоит меня. Мой браузер что, пока ответ не вернулся, и я не знаю, так ли это, потому что в это время узел фактически заблокирован, или нет.
Итак, как я могу узнать, действительно ли операция блокирует процесс моего узла? Я думал, что когда вы передаете обратный вызов функции, узел автоматически обрабатывает ее и помещает выполнение этого обратного вызова в очередь цикла событий. Но на самом деле я не уверен в этом
Имеет ли для вас все это смысл?