Как читать JS код?

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем petypen, 27 сен 2016.

  1. petypen

    petypen Нерд

    Коллеги, поделитесь, может секрет какой есть? Как вы читаете 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, который скобки подсвечивает. Вот сижу и скобки выделяю.
     
  2. ИгорьК

    ИгорьК Оракул Модератор

    Попробуйте Notepad++. Это самая крутая IDE для работы с JS.
     
  3. Максимус-Бог

    Максимус-Бог Убийца матрёшек

    Можно и Sublime Text.
     
  4. petypen

    petypen Нерд

    Коллеги, с редактором я определился. Это VSC. Тут вопрос в другом. Как вы разбираетесь с многочисленными вложениями функций при чтении кода?
    JS самый популярный язык в мире! Не ужели весь мир скобочки считает?
     
  5. ИгорьК

    ИгорьК Оракул Модератор

    Зачем их считать? Сворачиваете и разворачиваете функцию в редакторе и все как на ладони.
    Видимо это просто дело практики.
    Разобрались с функцией и свернули её.
     
    sys нравится это.
  6. petypen

    petypen Нерд

    Игорь, спасибо за совет. Мне этот способ понравился. Буду делать так.
     
  7. nicholasrq

    nicholasrq Нерд

    Многочисленных вложений лучше избегать, так называемый 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
    })