Skip to content

danillewin/yandex-task-two

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yandex-task-two

Причина ошибки

Цикл for не создает новую область видимости. Поэтому переменная request одна для всех итераций. Из-за таймаута, эмулирующего задержку ответа сервера, на момент вызова callback в переменной будет одно и то же значение - '/populations', что рушит дальнейшую логику со всеми вытекающими.

Некоторые варианты решения

  • Замыкания
  • Array.prototype.forEach()
  • Использовать let request = requests[i] из ECMAScript 6, тем самым объявляя request с блочной областью видимости

Как избегать вышеупомянутой проблемы

  • Использовать механизм событий
  • Использовать Promises

Первая часть задания - исправить код. В качестве исправления выбрал замыкание. Вторая часть - считать население конкретной страны или города. В качестве демонстрации подхода, который поможет избежать проблем связанных с задержкой ответа сервера выбран механизм Promises, а в качестве реализации Promises выбрана Q library, вообще, в ECMAScript 6 есть версия работающая "из коробки".

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published