0

Как правильно написать код, чтобы, в приведенном примере, очередность выполнения была 1-2-3, т.е. третий вызов ждёт результата выполнения первого и второго? Спасибо.

 alert('start');

 function fun(s, f) {
    alert('s : '+s);
    f();
 }

 fun('s1', function f1() {alert('1. Сработала первая функция.')});
 fun('s2', function f2() {function t(){alert('2. Сработала вторая функция.');};setTimeout(t, 1000)});
 fun('s3', function f3() {alert('3. Сработала третья функция.')});

 alert('stop');
Alex
  • 238
  • @Suvitruf , спасибо за помощь. Пытаюсь сделать, в том числе, - под IE8+ , но толково не получается и в хроме ... так, чтобы было : start - 1 - 2 - 3 - stop. Вы бы не могли на моём примере показать ? – Alex Oct 22 '17 at 19:39

1 Answers1

0

Для этого, вам нужно вызывать функции асинхронно. Можно использовать Promise, к примеру

var p = new Promise(function(resolve, reject) {
    console.log('start');
    resolve();
});
p.then(function() { console.log('first func begin')});
p.then(function() { console.log('second func begin')});
p.then(function() { console.log('end')});