Execution order with jQuery-AJAX
Topics related to client-side programming language.
Post questions and answers about JavaScript, Ajax, or jQuery codes and scripts.
-
Marius
- Posts:107
Execution order with jQuery-AJAX
I have this code (ajax is async):
Code: Select all
function echoHello(){
return $.ajax({
//this will return "hello";
});
}
function echoWorld(){
return "world";
}
$.when(echoHello()).done(function(response){
console.log(response);
});
console.log(echoWorld());
Which outputs "world" and "hello" (in that order). But in the order I call the functions it should output "hello" and "world".
Whay is the response from the ajax function is outputed after, even it is called first?
Admin
Posts:805
Ajax makes a call to the web server and is asynchronous. You don't know how long it will take. It is the same as:
Code: Select all
setTimeout(_ => { console.log('hello'); }, 0);
console.log('world');
// output: world hello
'world' will run first as the async function runs after the current block even though the time is set to 0.