使用jQuery延迟 - when()使用getJSON()回调

时间:2013-03-20 11:50:39

标签: javascript jquery jquery-deferred deferred

我正在尝试理解jQuery中的when函数和延迟对象。

$.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/

2 个答案:

答案 0 :(得分:10)

您忘记了函数包装器 - 您的代码立即调用console.log而不是传递回调函数:

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

应该是:

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

Fiddle

答案 1 :(得分:1)

尝试使用.done(...)代替.then(...)。 jQuery文档中有一些例子。

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