什么是jQuery中的$.Deferred()和.resolve,它们有什么作用?

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");

只是为了澄清您的问题,您希望这两个警告显示不同的消息吗? - phuzi
是的,我想展示不同的信息,也想理解 .deferred。 - Jitender
2个回答

5

2
这个能满足你的需求吗?
var deferred = $.Deferred();
deferred.done(function(value) {
    alert(value[0]);
}).done(function(value){
    alert(value[1]);
});


deferred.resolve(["hello world", "goodbye, cruel world"]);

谢谢你的回答。我想知道在不使用.deferred的情况下我们可以得到相同的结果,所以为什么.deferred很有用,请参考http://jsfiddle.net/WLpBB/1/ - Jitender
这个答案缺少教育性的解释。 - mickmackusa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接