Cả lời hứa và lời gọi AJAX đều hoạt động không đồng bộ. Yêu cầu GET/POST có thể được thực hiện với cả hai. < < Chỉnh sửa: đó là câu lệnh WRONGSự khác nhau giữa Promise và AJAX là gì?
Vậy sự khác nhau giữa chúng là gì? Và khi nào tốt nhất nên sử dụng cái này thay vì cái kia?
Ngoài ra, một điều nữa:
Gần đây tôi đã gặp một lời hứa có AJAX trong cơ thể. Tại sao đặt một hoạt động async bên trong một hoạt động async? Điều đó giống như đặt một ổ bánh mì trong một bánh sandwich bánh mì.
EDIT: lời xin lỗi của tôi vì đã không cung cấp một ví dụ trước đó:
function threadsGet() {
return new Promise((resolve, reject) => {
$.getJSON('api/threads')
.done(resolve)
.fail(reject);
})
}
jQuery được sử dụng ở đây. Và cuộc gọi AJAX có hành vi và thuộc tính Promise. Tôi đã không nhận được điều đó sớm hơn nhưng đây là những suy nghĩ của tôi: Chúng ta có thể làm điều gì đó trong Lời hứa. Sau đó, sử dụng cuộc gọi AJAX và chức năng done
chuyển logic Lời hứa được giải quyết. Cụ thể trong ví dụ này không có.
Bây giờ tôi thấy rằng tôi đã nhầm lẫn cả hai. Chúng có khá nhiều thứ khác nhau. Chỉ vì chúng không đồng bộ, không có nghĩa là chúng có thể hoán đổi cho nhau.
==============
EDIT 2: Chỉ cần một số tài liệu tôi tìm thấy hữu ích:
bạn có thể vui lòng làm rõ ý của bạn là gì khi bạn nói bạn có thể yêu cầu GET/POST bằng _promise_? –
Một lời hứa, tự nó, không có cơ chế để thực hiện các yêu cầu GET/POST. Có lẽ đọc trên [Tài liệu hướng dẫn] (http://stackoverflow.com/documentation/javascript/231/promises/846/introduction#t=201609281521002304613)? –
Lời hứa là một giao diện * cho các hoạt động không đồng bộ. Yêu cầu ajax là một hoạt động không đồng bộ rất cụ thể. – Bergi