Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать while с интервалом или... (https://javascript.ru/forum/misc/72873-kak-sdelat-while-s-intervalom-ili.html)

Signal 03.03.2018 20:41

Как сделать while с интервалом или...
 
Здравствуйте комрады!
собственно вопрос глупый, вообщем пишу расширение с разными модулями под каждый сайт и изначально ступил и не правильно сделал старт.

вообщем конструкция такая
var GLOBAL= (function () {
function MAIN() {
  this.set=1;
  this.set2=2;
 // вообщем куча разных параметров
  LoadSetupData(); //===когда возвращалось как return то все нормуль, а теперь появился сайт где настройки нужно хранить в localStorage бекраунда и грузить надо через callback
   //собственно вопрос, как далее подождать, чтоб дождаться загрузки параметров, выриант впихнуть в LoadSetupData(function(okLoad) {
 не вариант, т.к. потом GLOBAL.MAIN.SITE не видно.. далее по тексту внизу...
});
  if (urlSite='site1') {
  this.SITE = new Site1();
} else if (urlSite='site2') {
  this.SITE = new Site2();
}
  return this;
}
})();


пробовал делать через
while(true) {
if (isLoadSetup) {
if (urlSite='site1') {....
но понятное дело, этот while без паузы и все виснет...
}
}

помогите решить эту мелкую проблемку:help:

j0hnik 03.03.2018 23:49

(run =()=> {
	//Код
if (условие) setTimeout(run, 1000);
})();

Signal 03.03.2018 23:59

Цитата:

Сообщение от j0hnik (Сообщение 479729)
(run =()=> {
	//Код
if (условие) setTimeout(run, 1000);
})();

не понял эту котструкцию
run это моя GLOBAL?

Signal 04.03.2018 00:07

Цитата:

Сообщение от Signal (Сообщение 479730)
не понял эту котструкцию
run это моя GLOBAL?

ВСЕ ПОНЯЛ, БЛАГОДАРСТВУЮ!!!!

Signal 04.03.2018 01:42

Цитата:

Сообщение от j0hnik (Сообщение 479729)
(run =()=> {
	//Код
if (условие) setTimeout(run, 1000);
})();


не канает все равно
GLOBAL потом в других сриптах не видно

j0hnik 04.03.2018 07:23

Это из за области видимости, не совсем понимаю что вы хотите сделать.

рони 04.03.2018 08:31

j0hnik,
GLOBAL нужен "сейчас", а формируется он "потом", в который раз ищется "снежная королева, которая заморозит js" на время формирования.
Signal,

читать про Promise, async function*, await, и учиться мыслить асинхронно.

j0hnik 04.03.2018 08:34

рони,
почему обычный колбек не подходит? (раз вы понимаете чего ТС хочет)

рони 04.03.2018 08:41

j0hnik,
подойдёт и колбек если он будет вместо GLOBAL

рони 04.03.2018 08:52

сейчас так
GLOBAL
fn(){GLOBAL}
а надо
Load.then(fn(GLOBAL))


Часовой пояс GMT +3, время: 10:45.