5

.deferred 到底做了什么,它的工作是什么,我们应该在何时何地使用 .deferred 和 resolve。在下面的函数中,我有两个 .done 回调。我想设置两个不同的回调消息。小提琴

var deferred = $.Deferred();
deferred.done(function(value) {
    alert(value);
}).done(function(id){
alert(id)
});

console.log(deferred)

deferred.resolve("hello world");
4

2 回答 2

5

jQuery.Deferred是jQuery实现promise模式的主要工具。

这里有几个链接,值得一读:

至于您的特定需求:您应该使用.then()(阅读文档.done().then())。

var deferred = $.Deferred();

deferred.then(function(value) {
    alert(value);
    return 42;
}).then(function(id){
    alert('The answer : ' + id);
});

console.log(deferred)

deferred.resolve("hello world");

小提琴

于 2013-10-02T07:16:52.747 回答
2

这会做你想要的吗?

var deferred = $.Deferred();
deferred.done(function(value) {
    alert(value[0]);
}).done(function(value){
    alert(value[1]);
});


deferred.resolve(["hello world", "goodbye, cruel world"]);
于 2013-10-02T07:08:47.660 回答