Проблема заключается в том, что при вызове callback() переменная request всегда имеет значение /populations. Это происходит из-за асинхронного вызова функции callback().
Есть два способа решения проблемы:
- Использование bind (bind.js)
- Использование замыкания (closure.js)
В обоих случаях переменная request сохраняет значение, которое она имела на момент вызова функции getData().
В файле alternative.js сделан вывод популяции страны.