2013-04-26 20 views
10

Gần đây tôi đã đọc về hàm promise([type] [,target]) trả về đối tượng Promise.Có những loại nào khác cho đối tượng lời hứa jQuery?

Các documentation bang rằng mặc định typefx:

Theo mặc định, type là "fx", có nghĩa là Promise trở được giải quyết khi tất cả các hình ảnh động của các yếu tố được lựa chọn đã hoàn thành.

Vì lý do nào đó, tôi đang gặp khó khăn khi tìm các loại có sẵn khác. Tôi cho rằng các loại khác có thể là ajax được giải quyết khi nội dung được tải vào bộ sưu tập bằng cách sử dụng load() hoặc các phương pháp tương tự (lưu ý rằng tôi biết cách xử lý các lời hứa load(), tôi chỉ đưa ra ví dụ).

Có danh sách nào đó chỉ định tất cả các loại có sẵn không? Tôi đã suy nghĩ về looking at the source code để tìm hiểu điều đó, tuy nhiên tôi đã hy vọng có một danh sách ở đâu đó, trừ khi fx là loại hợp lý duy nhất có thể sử dụng với chức năng này.

Trả lời

9

Các tài liệu nói về những tranh cãi type:

Các loại hàng đợi mà cần phải được theo dõi.

Theo mặc định, tất cả chức năng hoạt ảnh được thêm vào hàng đợi fx. Nhưng với .queue, bạn có thể "đính kèm" các chức năng vào các phần tử đã chọn được chạy theo hàng đợi bạn chọn (trong đó bạn có thể xác định).

Vì vậy, lời hứa sẽ được giải quyết khi tất cả các chức năng trong hàng đợi được chỉ định đã được gọi. Mặc dù tôi chưa thấy điều này trong thực tế.

Ví dụ:

$('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

Điều này có nghĩa rằng không có bất kỳ "built-in" các loại hàng đợi khác? Tôi đoán hình ảnh động chỉ được xếp hàng theo cách đó thực sự. – MMM

+1

Có, AFAIK 'fx' là hàng đợi dựng sẵn duy nhất. –

+0

Tuyệt vời, điều đó rất hữu ích. Tôi sẽ chờ đợi một chút trước khi chấp nhận câu trả lời của bạn mặc dù, có lẽ những người khác đã gặp phải các ví dụ khác. Cảm ơn! – MMM

Các vấn đề liên quan