0
我想我终于得到了我的头在承诺,但它似乎我偏离了一点。jQuery的承诺和延期,混乱
谁能把我从我的痛苦,并解释我做错了什么在这里:
t010 = { myGet: function(url) { var result = new $.Deferred(); result.resolve(ajaxRequest(url)); } }
,然后由我的主要方法,所谓:
$.when(t010.myGet(seatId), t010.myGet(roomId)).then(function(d1, d2) { console.log(d1); }
我只是控制台日志未定义每次。
我想我想要达到的是相当明显的,我想打电话给myGet两次,当两个都完成后做一些结果。
谢谢大家!
我明白是啊,我想我的问题就出在ajaxRequest函数我不得不使用,因为它返回'返回$ .ajax(默认).promise()。然后(函数(数据){尝试{返回JSON.parse(数据);} catch(e){返回数据; }'因此为什么我什么也没有得到。 – rogy 2014-09-19 22:34:14
你不能像这样的函数返回数据,因为它是异步的,你真正需要的就是'返回n $ .ajax(defaults);',然后执行'then()'(可能是'done()')函数,你调用它,'ajaxRequest(url).done(function(data){ });'等等,你可以在'$ .when'等中包含多个这样的内容。 – adeneo 2014-09-19 22:41:59
我无法控制那个烦人的返回函数(至少不是现在),所以我不得不使用它作为是的,我认为这是不会不改变ajax功能然后呢? – rogy 2014-09-19 22:43:56