2013-03-20 12 views
7

私はwhen関数と遅延オブジェクトをjQueryで理解しようとしています。jQueryに遅れて - ()コールバックでgetJSON()コールバック

get JSON ready! 
sucess 

を...しかし、私は最初にその成功のコールバック火災を達成したい:

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

この例は、返し

sucess 
get JSON ready! 

はどのように私はそれを行うことができますか?

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

答えて

10

あなたは、関数ラッパーを忘れてしまった - あなたのコードではなく、コールバック関数を渡すのすぐconsole.logを呼び出します。

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

は次のようになります。

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

Fiddle

+3

+1 ahhh、古い関数ポインタの問題。 – Liam

+0

+1良い観察。 – Adil

+1

ルーキーミス、ありがとう! –

1

てみてください.dを使って.then(...)の代わりに1つ(...)。 jQueryのドキュメントには例があります。

http://api.jquery.com/jQuery.when/

関連する問題