Мне нужно запустить генератор async (мне нужно получить результат в консоли 1,2,3,4,5, потому что теперь у меня есть 4,1,2,3,5), кто-нибудь может мне помочь? Мне нужно запустить задачу и дождаться завершения предыдущей задачи, прежде чем она запустит следующую задачу. Мне нужно использовать (если это возможно: только) генераторы (? Или генератор + обещание)Javascript ES6 генератор async
Вот мой код
/*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();
Попытки написать решение без генераторов (с использованием только обратных вызовов или обещания) в первую очередь. Тогда мы могли бы показать вам, как включить генераторы в эту картину, потому что сами по себе генераторы не являются асинхронными. – Bergi