嗨我想了解承諾與Ajax調用一起工作的方式。 我想發送一個簡單的Ajax調用到特定的終點,但我真的與代碼語法混淆。這裏是我的代碼:Ember.RSVP.Promise with AJAX call
代碼的目的是使用戶的會話無效。首先,客戶端應該向註銷端點發送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
你們倆是絕對正確的!我認爲我應該使用Ember中的RSVP.Promise ... – Jack