2013-03-20 8 views
7

Próbuję zrozumieć funkcję when i odroczone obiekty w jQuery.Odroczone z jQuery - kiedy() z callbackami getJSON()

$.when($.getJSON('/echo/json', function() { 
    console.log('sucess'); 
}, function() { 
    console.log('error'); 
})).then(console.log('get JSON ready!')); 

tym przykładzie zwraca:

get JSON ready! 
sucess 

... ale chcę osiągnąć sukces, że pożary zwrotnych pierwszy:

sucess 
get JSON ready! 

W jaki sposób można to zrobić?

http://jsfiddle.net/lukaszr/rBFmL/

Odpowiedz

10

Zapomniałaś opakowanie function - Twój kod wywołuje console.log natychmiast zamiast przekazując funkcję callback:

.then(console.log('get JSON ready!')); 

powinno być:

.then(function() { 
    console.log('get JSON ready!'); 
}); 

Fiddle

+3

+1 ahhh, stary wskaźnik wskaźnika funkcji. – Liam

+0

+1 dobra obserwacja. – Adil

+1

Rookie błąd, dzięki! –