var arr = ['element_0', 'element_1', 'element_2', 'element_3', 'element_4'];
for (var i = 0; i < arr.length; i++) {
first();
function first() {
console.log('start ');
setTimeout(function () {
console.log('main code... ' + arr[i]);
}, 2000);
second();
}
function second() {
console.log('end '+arr[i]);
}
}
function first(){
return new Promise(next=>{
setTimeout( function(){
console.log(1);
next('привет');
}, 1000 );
});
}
function second(txt){
console.log('После first получили:', txt);
console.log(2);
}
first().then(second); //Сначала first, затем second
function first(e){
console.log('start',e);
return new Promise(next=>{
console.log('promise');
setTimeout( function(){
console.log('main code... ' + Math.random());
next(e);
}, 2000 );
});
}
function second(e){
console.log('end '+e);
}
var arr = ['element_0', 'element_1', 'element_2', 'element_3', 'element_4'];
arr.forEach(e=>first(e).then(second));
Обратите внимание, что вся суть и работа в итоге записывается в одну строчку в конце. И получается очень красиво и логично. А весь код до этого - чисто подготовка и объявления.