Коллеги, поделитесь, может секрет какой есть? Как вы читаете javascript код? Кода в качестве аргумента выступает определение функции и так несколько раз, по неволе теряешь логическую цепочку. Вот пример из последнего проекта Амперки (они большие молодцы) Код (Javascript): var request = function () { var response = ''; http.get(options, function(res) { // Большие ответы от сервера могут приходить по частям. // В переменной response собираем весь ответ целиком. res.on('data', function(data) { response += data; }); // После закрытия соединения обрабатываем весь пришедший ответ res.on('close', function() { if (response === undefined) { print('Error. Response is undefined.'); } else { print(response); } setTimeout(request, 5000); }); }); }; у метода get есть несколько параметров: с первым параметром нет проблем - это option; второй параметр это функция с параметром res (кстати так и не нашёл, где переменная res определена) а вот с третьим параметром беда, он есть или его нет. Где он начинается, если есть? Как быстро читать такой код? ps. пока спасает умный редактор VisualStudioCode, который скобки подсвечивает. Вот сижу и скобки выделяю.
Коллеги, с редактором я определился. Это VSC. Тут вопрос в другом. Как вы разбираетесь с многочисленными вложениями функций при чтении кода? JS самый популярный язык в мире! Не ужели весь мир скобочки считает?
Зачем их считать? Сворачиваете и разворачиваете функцию в редакторе и все как на ладони. Видимо это просто дело практики. Разобрались с функцией и свернули её.
Многочисленных вложений лучше избегать, так называемый callback-hell сейчас решается всякими штуками типа Deferred и Promise (в искре их нет, но можно добавить). Насчет определения переменной res из первого поста, это работает вот таким образом: Код (Javascript): // определяем функцию sum которая будет принимать // два числа и коллбек. в коллбек мы будем передавать // результат сложения var sum = function(num1, num2, callback){ callback(num1 + num2) } // здесь мы вызываем функцию sum и передаем ей третьим // аргументом функцию в которую придет результат выполнения // функции sum sum(2, 6, function(result){ console.log(result) // => 8 })