Запустить код после функции внутри функции javascript

У меня есть эта функция:

function start_all(id) {

document.getElementById('status').innerHTML = "Starting...";

start(id); // This print too a status on the "status" div like: ID started

document.getElementById('status').innerHTML = "Done...";

}

Моя проблема в том, что последняя строка выполняется перед запуском функции (id); а мне нужно бежать по порядку.

Мой результат:

Starting...
Done...
ID started

А мне нужно вот так:

Starting...
ID started
Done...

person Insert    schedule 11.12.2016    source источник
comment
Что вам нужно использовать обещания или обратные вызовы.   -  person epascarello    schedule 11.12.2016


Ответы (2)


function start_all(id) {

document.getElementById('status').innerHTML = "Starting...";

start(id,function(){
document.getElementById('status').innerHTML = "Done...";

});

}

Это называется обратный вызов

person boomcode    schedule 11.12.2016
comment
Функция start() исправлена, я не могу ее изменить, потому что она используется в другой области. - person Insert; 12.12.2016

Как насчет этого:

   document.getElementById('status').innerHTML = "Starting...";
var status_id = start(id) // a string that returns the text 'ID Started'
document.getElementById('status').innerHTML = status_id;
document.getElementById('status').innerHTML = "Done...";

person Remya CV    schedule 11.12.2016
comment
Функция start() исправлена, я не могу ее изменить, потому что она используется в другой области. - person Insert; 12.12.2016