Webix jet && promise

Добрый день! Необходимо подгрузить справочники, прежде чем webix jet начнет во всю работать.
Но к сожалению, код из js/libs/webix-mvc-core/core код выполняется дальше, ждать ничего не хочет.
Ни паузы, ни promise.then - ничего ждать не хочет.
Вообще, по хорошему все эти data.json можно было впихнуть в define, но вот там требуется формат обязательно с define([]){return что-то}

define([
		"js/libs/webix-mvc-core/core",
		"js/libs/webix-mvc-core/plugins/menu"],
	function (core, menu)
	{
		webix.ui({
			id: 'load',
			template: 'Подгрузка необходимых справочников'
		});

		webix.extend($$("load"), webix.ProgressBar);

		$$("load").showProgress({
			type:"bottom",
			delay:2000,
			hide:true
		});

		var a = webix.ajax('data.json');
		var b = webix.ajax('profile.json');
		var c = webix.ajax('options.json');


		webix.promise.all([a,b, c]).then(function(results)
		{
		 //.. код код код

			//configuration
			var app = core.create({
				id:			"webix", //change this line!
				name:		"webix",
				version:	"0.1.0",
				debug:		true,
				start:		"/app/start"
			});

			app.use(menu);
			
			return app;
		})
		
	});

Незнаю насколько это вам поможет, но хотя старт самого приложения отложить нельзя, отдельные вью могут возвращать промайсы

То есть можно оставить старт самого приложения как есть, а в views/app.js вернуть не объект ui а его промис ( который уже будет привязан к промисам данных )

Либо, еще как вариант, укажите в качестве start, отдельное вью loading. Которое отрисует страницу загрузки, а по загрузке данный вызовет app.show("/app/start")

Ну не очень то он и хочет возвращать promise или я что-то не так делаю:

Вместо define

	webix.promise.all(webix.ajax('api.php?a=get_files')).then(function(results)
	{

		return {};
	});

You have trailing comma or Null element in collection’s configuration

webix.promise.all([
   webix.ajax('api.php?a=get_files')
]).then(function(results){
     return { template: results[0].text() };
});

Банально синтаксис неправильный :frowning: Птьфу. Попробую! Спасибо

Решил переписать свой старый кусок кода, к сожалению до этого подгружал синхронно справочники и вешал таймаут. Все это было долго, сейчас через ожидания.
Но, не пашет никак :frowning:


var a = webix.ajax('models/statistic/region_stat_data.json');
var b = webix.ajax('models/statistic/russia.json');



webix.promise.all([a,b]).then(function(results)
{

    alert(1);
    define([
        "js/jquery-1.11.3.min",


    ], function (jquery)
    {
        alert(2);


        return {};
    });
});

Притом, если define использовать до ожидания, то все хорошо.
А вот define внутри ожидания - все плохо :frowning:

в вашем случае вместо define должно быть require

Это погоды не сделает, так как вместо jquery может быть
“js/libs/webix-mvc-core/core”,
“js/libs/webix-mvc-core/plugins/menu”,
или другие компоненты, внутри которых есть еще define а внутри их еще define

в вызываемых компонентах define быть обязан. у define и require логика отличается. define не может быть вложен в функцию. и для вызова json файлов лучше использовать “json!” плагин.

Это все понятно.
Но json и require тут вообще не причем.
Но в любом случае, спасибо за помощь.
Проблему решил, по способу, описанным Максимом.
Создал отдельное вью loading и по окончанию его работы вызвал app/start