Latest web development tutorials

Node.js функция обратного вызова

Непосредственно отражает Node.js асинхронного программирования является обратный вызов.

Опираясь на обратного вызова асинхронного программирования для достижения, но не могу сказать, что после того, как с помощью обратного вызова асинхронного программы.

Функция обратного вызова будет вызвана после завершения задачи, узел использует много обратных вызовов, Node API поддерживает все функции обратного вызова.

Например, мы можем прочитать файл сторону, в то время выполнения других команд, после прочтения документа будет завершена, мы будем хранить содержимое в качестве аргумента функции обратного вызова возвращается. При выполнении кода не заблокированы или ожидания операций ввода / вывода файла. Это значительно повышает производительность Node.js может обрабатывать большое количество одновременных запросов.


Блокирование примеров кода

Создайте файл input.txt, звучит следующим образом:

本教程官网地址:www.w3big.com

Создание main.js файл, следующим образом:

var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("程序执行结束!");

Приведенный выше код выполняется следующим образом:

$ node main.js
本教程官网地址:www.w3big.com

程序执行结束!

Неблокирующая примеры кода

Создайте файл input.txt, звучит следующим образом:

本教程官网地址:www.w3big.com

Создание main.js файл, следующим образом:

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序执行结束!");

Приведенный выше код выполняется следующим образом:

$ node main.js
程序执行结束!
本教程官网地址:www.w3big.com

Мы понимаем, вышеупомянутые два примера различной блокировки и неблокирующих вызовов. После того, как первый экземпляр файла считывается перед выполнением программы. Второй экземпляр нам не нужно ждать, чтобы прочитать полный файл, так что следующий код может быть выполнен в то же время при чтении файла, что значительно повышает производительность программы.

Таким образом, путем блокирования оно выполняется последовательно, в то время как без блокировки не требуется для того, так что если вам нужно обработать параметр функцию обратного вызова, нам нужно написать в функции обратного вызова.