Переписываем Require.js с использованием Promise. Часть 1
|
|
Четверг, 12 Марта 2015 г. 10:55
+ в цитатник
Чтобы не иметь проблем с зависимостями и модулями при большом количестве браузерного javascript, обычно используют
require.js. Также многие знают, что это всего лишь один из многих загрузчиков стандарта
AMD, и у него есть альтернативы. Но мало кто знает, как они устроены внутри. На самом деле, написать подобный инструмент не сложно, и в этой статье мы шаг за шагом напишем свою версию загрузчика AMD. Заодно разберемся с
Promise, который недавно появился в браузерах и поможет нам справиться с асинхронными операциями.
Основой require.js, является функция
require(dependencies, callback)
. Первым аргументом передаем список модулей для загрузки, а вторым – функцию, которую вызовут по окончании загрузки, с модулями в аргументах. Используя Promise написать её совсем несложно:
function require(deps, factory) {
return Promise.all(deps.map(function(dependency) {
if(!modules[dependency]) {
modules[dependency] = loadScript(dependency);
}
return modules[dependency];
}).then(function(modules) {
return factory.apply(null, modules);
});
}
Конечно, это еще не всё, но основа есть. Поэтому продолжим.
Читать дальше → http://habrahabr.ru/post/252783/
Метки:
Веб-разработка
JavaScript
requirejs
amd
модули
велосипеды на javascript
tutorial
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-