我需要帮助来理解一些承诺逻辑.这是我想要实现的目标 – 使用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工作:
解决方法
我不认为这两个promise实现是可链接的.你想把jquery承诺包装在Ember承诺中.
var requestPromise = new Ember.RSVP.Promise(function(resolve,reject) { $.get("/",resolve).fail(reject); });