В петлевой документации, что означает переменная "cb"?

Посмотрите на код обратной связи в их документации http://docs.strongloop.com/display/public/LB/Defining+and+using+roles, что я пытаюсь понять, так как start - это "cb". Я понимаю, что это своего рода обратный вызов, но почему это все вокруг? Это связано с Async.js?

1 ответ

Решение

Это связано с тем, как узел работает асинхронно. Он использует "цикл обработки событий", который передает другие функции ввода / вывода фоновому рабочему потоку. Когда фоновая работа завершается, цикл обработки событий получает обратный вызов. Здесь есть хорошее обсуждение этого: почему node.js асинхронный?

Библиотеки узлов, которые используют дорогие ресурсы, следуют этой модели для повышения производительности.

Обратный вызов - это функция, которую вы передаете в библиотечную функцию, которая выполняется, когда эта функция завершает свою обработку. Это часто анонимно.

Соглашение состоит в том, чтобы эта функция принимала параметр ошибки в качестве первого аргумента, а результаты - в качестве последующих. Вы увидите этот шаблон везде:

lib.somfunc( 'argument', function(err, res){

    if(err)....

}); 

Async.js - это что-то немного другое. Это библиотека, которая предоставляет различные средства для управления асинхронным кодом, который использует обратные вызовы.

Другие вопросы по тегам