【发布时间】:2014-05-15 00:15:55
【问题描述】:
我希望链接多个 ajax 请求,类似于: 获取第一个 JSON,如果成功则继续获取第二个 JSON,如果成功则创建一个包含两个 JSON 数据的新对象。
// get first json
$.getJSON('http://www.json1.com').then(function(json1){
return json1
}).then(function(json1){
// get second json
$.getJSON('http://www.json2.com').then(function(json2){
var both = {}
both.one = json1
both.two = json2
return both
})
})
我应该将.then 语句相互嵌套吗?我不完全确定如何获得 both 变量。
【问题讨论】:
-
它不起作用吗?此外,您使用的是
.then(),但这与仅使用回调参数并没有真正的区别。为什么不直接使用它呢? -
嗯,我可能没有正确理解这个概念。我想我也应该加入
Promise部分。 -
在像你这样的情况下,做
$.getJSON('url', function(json1) { $.getJSON('url2', function(json2) { /* work with json1 and json2 */ })});没有问题,当你想同时等待时,你通常会使用承诺:var p1 = $.getJSON('url1'); var p2 = $.getJSON('url2'); $.when(p1,p2).then(function(json1,json2) { /* do something */});
标签: javascript promise rsvp.js