Potrzebuję uruchomić async generator (muszę mieć wynik w konsoli 1,2,3,4,5 bo teraz mam 4,1,2,3,5) ktoś może mi pomóc? Potrzebuję uruchomić zadanie i czekać, gdy poprzednie zadanie zostanie zakończone, zanim uruchomi następne zadanie. Muszę używać (jeśli to możliwe: tylko) generatory (? Lub generator + obietnica)Generator ES6 Javascript async
Oto mój kod
/*jshint esnext: true */
function show(msg) {
var _msg = msg;
setTimeout(function() { console.log(_msg);}, 2000);
}
function show2(msg) {
console.log(msg);
}
var stack = [];
// add some function to stack
stack.push(function() { show(1); });
stack.push(function() { show(2); });
stack.push(function() { show(3); });
stack.push(function() { show2(4); });
stack.push(function() { show(5); });
function* generator1() {
for(var key of stack) {
yield key();
}
}
var gen = generator1();
gen.next();
gen.next();
gen.next();
gen.next();
gen.next();
Spróbuj napisać rozwiązanie bez generatorów (z wykorzystaniem tylko zwrotnych lub obietnic) pierwszy. Wtedy moglibyśmy pokazać, jak włączyć generatory do tego obrazu - ponieważ same generatory nie są asynchroniczne. – Bergi