Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JavaScript - Návržení kódu

Ahoj, poradí někdo, jak napsat lépe takový kód ? Děkuji

var i;
i = 0;

function start(){
      if (i === 0) a();
 else if (i === 1) b();
 else if (i === 2) c();
 else if (i === 3) d();
 else if (i === 4) e();
 else if (i === 5) return; //ukonceni funkce
 setInterval(start, 1000);
}

function a() { i = 1; /*..*/}
function b() { i = 2; /*..*/}
function c() { i = 3; /*..*/}
function d() { i = 4; /*..*/}
function e() { i = 5; /*..*/}

start();
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Myslím, že to, čo hľadáš, sú promisy. V tomto prípade by to mohlo vyzerať napr. takto: Promise.reso… poslední
los 07.12.2015 23:24
los

Myslím, že to, čo hľadáš, sú promisy. V tomto prípade by to mohlo vyzerať napr. takto:

Promise.resolve(a())
	.then(b)
	.then(c)
	.then(d)
	.then(e);

Prípadne príklad so sekundovými odostupmi volaní s použitím zápisu lambda funkcie pomocou šípky (ES6):

var delay = t => new Promise(resolve => setTimeout(resolve, t));
Promise.resolve(a())
	.then(x => delay(1000))
	.then(x => b())
	.then(x => delay(1000))
	.then(x => c())
	.then(x => delay(1000))
	.then(x => d())
	.then(x => delay(1000))
	.then(x => e());

Ak chceš použiť funkcionalitu z ES6 v starších prehliadačoch, môžeš použiť kompilátor ako napr. Babel alebo TypeScript. Pre prehliadače, ktoré neimplementujú Promise, môžeš použiť knižnicu, napr. bluebird.

Zpět do poradny Odpovědět na původní otázku Nahoru