7

whenjQuery の関数と遅延オブジェクトを理解しようとしています。

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

この例は次を返します。

get JSON ready!
sucess

...しかし、成功のコールバックが最初に発生することを達成したい:

sucess
get JSON ready!

どうやってやるの?

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

4

2 に答える 2

10

関数ラッパーを忘れました-console.logコールバック関数を渡す代わりに、コードはすぐに呼び出します:

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

する必要があります:

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

フィドル

于 2013-03-20T11:52:35.363 に答える
1

.then(...) の代わりに .done(...) を使用してみてください。jQueryのドキュメントに例があります。

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

于 2013-03-20T11:56:37.147 に答える