jQuery. $.getScript и .then — ожидание загрузки внешнего скрипта

Задача: выполнить код после загрузки внешнего скрипта.

Пример 1.

# включить кеширование, чтобы не было таймштампа в url скрипта
$.ajaxSetup({
	cache: true
});

# точка 1
$.getScript("script.js").done(function(script, textStatus, jqxhr) {
	# точка 3
	if (jqxhr.status == 200 || jqxhr.status == 304) {
		// Скрипт загрузился успешно
		// продолжаем работу скрипта
	} else {
		console.log("Error download! Code = " + jqxhr.status);
	}
});
# точка 2

Т.к. $.getScript запускается асинхронно, то порядок выполнения точек скорее всего будет такой:
точка 1
точка 2
точка 3
поэтому дальнейшую зависимую логику надо будет поместить в точку 3.

Пример 2.
Последовательное выполнение асинхронных операций: следующая операция не начинается, пока текущая не закончится.

$.getScript('http://echo.jsontest.com/id/1')
.then(
	function(result){
		console.log(JSON.stringify(result));
		return $.getScript('http://echo.jsontest.com/id/2')
	}
).then(
	function(result){
		console.log(JSON.stringify(result));
		return $.getScript('http://echo.jsontest.com/id/3')
	}
).then(
	function(result){
		console.log(JSON.stringify(result));
	}
);

Пример 3.
Последовательное выполнение асинхронных операций: после обработки ошибки ни один последующий колбэк не вызывается.

$.getScript('http://echo.jsontest_fail.com/id/1')
.then(
	function(){
		console.log('OK 1');
		return $.getScript('http://echo.jsontest.com/id/2');
	},
	function(){
		console.log('error 1');
		return $.Deferred();
	}
).then(
	function(){
		console.log('OK 2');
	},
	function(){
		console.log('error 2');
	}
);

https://habr.com/ru/company/bankrot-pro/blog/230441/
https://jquery-docs.ru/jQuery.getScript/