我需要帮助来理解一些承诺逻辑。这是我想要实现的目标 - 使用jQuery我获取请求,然后我将它与我的承诺链接起来进行一些检查,我的代码:
http://jsbin.com/UVEpurU/1/edit
function checkInfoPromise(r) {
var ok = true,
promise = Ember.RSVP.Promise(function(resolve, reject) {
if(ok) {
return resolve(r);
}
else {
return reject(r);
}
});
return promise;
}
var requestPromise = $.get('/')
.then(function(r){
return checkInfoPromise(r);
});
requestPromise.then(function(r) {
console.log(r);
}).fail(function(r) {
console.log('fail');
});
并且它不能像我期望的那样工作。文档说他们应该互相合作,但他们没有,或者我的代码不正确。
与jQuery + jQuery相同的逻辑工作正常:
http://jsbin.com/AYeyaxO/1/edit
Ember + Ember工作:
答案 0 :(得分:9)
我不认为这两个承诺实现是可链接的。你想把jquery的承诺包装在Ember的承诺中。
var requestPromise = new Ember.RSVP.Promise(function(resolve, reject) {
$.get("/", resolve).fail(reject);
});