多个并行的承诺,我要排队使用jQuery的递延/承诺实现多个异步Ajax请求:等待完成后使用jQuery
function doSomething() {
console.log('doSomething')};
function makeMultiAjaxRequests1() {
console.log('makeMultiAjaxRequests1')};
function makeMultiAjaxRequests2() {
console.log('makeMultiAjaxRequests2')};
var step1 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests1();
return promise; }
var step2 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests2();
return promise; }
step1()
.then(step2())
.done(doSomething());
$.when(step1(),
step2())
.done(function() {
doSomething();
});
这里是fiddle link。所以我的问题是:
在step1和step2并行执行的模式中,代码没有到达最后一个处理函数。为什么?
你在哪里其实解决的承诺?如果不触发处理程序,则不会调用回调函数... – Bergi
“step1()”和“step2()”中的延迟永远不会被解析。 –
雅这是真的,但在前面的顺序示例中情况如何?承诺未解决,代码完成。 – crishushu