Если вы используете jquery, есть хорошая функция для работы с асинхронными задачами, она называется Отложено
function doAsyncTask() {
var d = $.Deferred();
$.get(url, params, function(data) {
//process data
d.resolve();
}).fail(function(e) {
console.error("get request failed", e);
d.reject();
});
return d;
}
function onAsyncTaskFinished() {
console.log("async task is finished");
}
function onAsyncTaskFail() {
console.error("async task is failed");
}
doAsyncTask().then(onAsyncTaskFinished, onAsyncTaskFail);
В чистом JavaScript вы можете передать функцию обратного вызова и вызвать ее после завершения асинхронной задачи.
function doAsyncTask(callbackFn) {
setTimeout(function() {
callbackFn();
},1000);
}
function onAsyncTaskFinished() {
console.log("async task is finished");
}
doAsyncTask(onAsyncTaskFinished);