Идея этого шаблона в том, что скрипт, который загружается с:
src="https://maps.googleapis.com/maps/api/js?callback=initMap"
..., должен быть в состоянии выполнить обещание. Для этого сценарию необходимо вызвать функцию resolve
, которую предоставляет конструктор обещаний. Но поскольку resolve
является локальным для этого конструктора, авторы использовали решение, в котором они присваивают эту функцию переменной global , которая будет доступна для загруженного скрипта.
Этот скрипт непременно рассмотрит аргумент callback
, присутствующий в URL, и извлечет значение, следующее за ним. Он будет присвоен некоторой переменной, скажем, callback
, и затем они вызовут разрешение с помощью:
window[callback]();
, который будет синонимом для resolveFunc
, который, в свою очередь, является синонимом для resolve
.
Этот скрипт не мог этого сделать с помощью вызова resolve
:
resolve();
... так как это будет неизвестная переменная.