这启动了一个不同时间解决的承诺
那些是平行的,但反击的事实
异步时,它是一个最终值的参考
最后工作让我获得res(总是5)的相同值
任何解决方法吗?
//to test dynamics additions based on functions returning
//promises as iterators
var moitabla = document.body.appendChild(document.createElement("table"));
moitabla.setAttribute("id", "mit");
var moitexto = document.createTextNode("to add");
var mirow = document.createElement("tr");
var mitd = document.createElement("td");
mirow.appendChild(mitd);
mitd.appendChild(moitexto);
moitabla.appendChild(mirow);
//here it comes
function* gen() {
let i = 0;
for (/*let must be here or do closure for it */i = 0; i < 5; i++) {
yield(new Promise(function(resolve, reject) {
window.setTimeout(function() {
resolve(i);
}, i * 1000);//end timeout
}/*end function anonymous*/
)//end new promise
); //end promise parse envelper
}; //endfor
}; //end gen
var it = gen();
var bar;
while (!(bar = it.next()).done) {
bar.value.then(function(res) {
console.log("done!! " + res);
});
//always done!! 5 no individual value
};