【发布时间】:2018-11-07 00:34:34
【问题描述】:
我有一个包含三个选择选项的菜单。第一个选择是其余两个的驱动程序;他们需要第一个菜单项的值来填充。但是,它们是并行的——这两者都不相互依赖,因此它们的 ajax 调用可以并行运行。
我当前的步骤对第一个菜单进行了 ajax 调用,然后使用 .then() 方法对下一个菜单进行调用,然后对最后一个菜单进行另一个 .then() 调用。这不是很有效。我试图弄清楚如何让两个子菜单调用在一个 .then() 下运行
//Get campus list and build menu
$.getJSON(apiURL)
.then( function(campusdata) {
buildMenu('campus', campusdata);
return $.getJSON(apiURL + '/colleges/' + $campus.val());
})
//Build college menu
.then(function(collegedata) {
buildMenu('college', collegedata);
return $.getJSON(apiURL + '/campus-year-terms/' + $campus.val());
})
//Build academic terms submenu
.then(function(termdata){
buildMenu('term', termdata);
})
.done(function(){
<other stuff that can really be completeduntil menus are populated>
})
.fail(console.log.bind(console));
【问题讨论】:
标签: javascript jquery-deferred deferred