2015-06-19 3 views
2

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

ответ

4

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

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

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

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

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

    if(err).... 

}); 

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