2013-04-26 64 views
10

我最近一直在念叨promise([type] [,target])函数返回一个Promise对象。jQuery承诺对象有哪些其他类型?

documentation状态默认typefx

默认情况下,type是“fx”,这意味着返回的承诺时,所选元素的所有动画已经完成了解决。

由于某种原因,我很难找到其他可用的类型。我假设其他类型可能是例如ajax当内容加载到使用load()或类似的方法(注意,我知道如何处理load()承诺,我只是给出一个例子)的集合,其得到解决。

有没有什么地方指定所有可用的类型列表?我在想looking at the source code找到了,但是我希望有一个清单某处,除非fx是唯一明智的类型可以使用此功能使用。

回答

9

文档说有关type论点:

需要被观察到的队列的类型。

默认情况下,所有动画功能都被添加到fx队列中。但通过.queue,您可以将函数“附加”到选定的元素,这些元素将按照您选择的队列运行(您可以定义这些元素)。

因此,承诺将得到解决,一旦在指定的队列中的所有功能都被调用。虽然我还没有在实践中看到过这一点。

例子:

$('div').queue('foo', [function(next) { 
    setTimeout(next, 2000); // some delay 
}, function(next) { 
    console.log('Last function in queue'); 
    next(); 
}]).dequeue('foo'); 

$('div').promise('foo').done(function() { 
    console.log('all done'); 
}); 

DEMO

+0

这是否意味着没有任何其他的 “内置” 队列类型?我想只有动画才能真正地以这种方式排队。 – MMM 2013-04-26 10:00:58

+1

是的,据我所知'fx'是唯一内置的队列中。 – 2013-04-26 10:04:50

+0

太棒了,这很有帮助。在接受你的答案之前,我会等一会儿,也许其他人遇到过其他例子。谢谢! – MMM 2013-04-26 10:06:19