Привет Я пытаюсь понять, как обещают работу вместе с вызовами Ajax. Я хочу отправить простой вызов Ajax в определенную конечную точку, но я действительно смущен синтаксисом кода. Вот мой код:Ember.RSVP.Promise с вызовом AJAX
Целью кода является аннулирование сеанса пользователя. Во-первых, клиент должен отправить ajax-вызов конечной точке выхода, предоставляя токен пользователя, а затем, если сервер отвечает успешно, мы вызываем метод invalidate() для очистки данных пользователя с клиентской стороны.
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
invalidateSession() {
const url = "http://namespace/logout/";
let logoutRequest = new Ember.RSVP.Promise(function(r,e){
r(this.ajax(url, "PUT", {auth_token});)
},
if (logoutRequest) {
this.get('session').invalidate();
}
}
}
});
Я знаю, что мой код не работает, но я не могу поставить все это вместе ...
Не 'ajax (...)' уже возвращает обещание? Не нужно создавать вокруг него конструктор 'Promise'! – Bergi
Кроме того, у вас, кажется, есть проблема [с 'this' в вашем обратном вызове] (http://stackoverflow.com/q/20279484/1048572) (который также решается путем упущения вызова' Promise') – Bergi
Вы оба абсолютно правы! Я думал, что я должен использовать RSVP.Promise в Ember ... – Jack