嵌套的getJSON调用
nested getJSON calls
所以。。我是这个Javascript的新手,并且使用JSON。我正在开发一个网页,在这种情况下需要评论,然后是当前用户名。
为了开发它,我尝试创建一个函数,使用getJSON((方法返回用户名,但显然这是行不通的。相反,我想到的是使用嵌套的getJSON调用。
类似这样的东西:
$.getJSON(getCommentsURL, function(jsonComments){
$.getJSON(getUsernameURL, function(username){
jsonComments[0].deleteButton = (jsonComments[0].username === username)
// programming logic
});
});
主要是,我需要这两种信息的原因在代码示例的第3行中进行了描述。
我的问题是,这种实施方式在传统上可以接受吗?它确实有效,但可能有一种更合适的方式来实现它。我之所以关心惯例和适当的方法,不仅是为了我自己的知识,还因为这是一项学校作业,要求代码干净正确(不仅有效(。
非常感谢您的回答。
这是使用jQuery对Promise.all
-$.when
的答案的一个很好的用例。
var commentsPromise = $.getJSON(getCommentsURL);
var usernamePromise = $.getJSON(getUsernameURL);
// when both requests complete
$.when(commentsPromise, usernamePromise).then(function(jsonComments, username) {
jsonComments[0].deleteButton = (jsonComments[0].username === username)
// programming logic
});
Question的方法应该返回预期结果,您也可以使用.then()
。您还可以将.fail()
或.catch()
链接到.then()
以处理错误。注意.then()
中的return
语句
$.getJSON(getCommentsURL)
.then(function(jsonComments) {
return $.getJSON(getUsernameURL)
.then(function(username){
jsonComments[0]
.deleteButton = (jsonComments[0].username === username)
// programming logic
});
})
.fail(function(jqxhr, textStatus, errorThrown) {
console.log(errorThrown)
})
相关文章:
- 当站点不是其URL的根时,如何在getJSON调用中定位API
- 如何在循环期间访问 jquery getJson 调用 ($.getJson) 中的索引变量
- 如何处理 getJSON 调用上的“未捕获类型错误:无法设置未定义的属性'prop'”
- 使用 $.getJson 方法从 jquery 调用 C# MVC 控制器方法
- 如何对调用getJSON的javascript函数进行单元测试
- 分别使用两个getJSON调用
- 在另一个getJSON调用的回调中,没有为getJSON调用触发回调
- jQuery getJSON在成功时从不调用成功函数
- 不能调用未定义的 GetJson 的方法“toLowerCase”
- 在从 getJSON 调用返回的数据发生更改时触发事件
- $.getJSON() 在 $.each() 循环中的调用未按顺序执行
- 多次调用 .getJSON
- 如何在highchart部分中调用getJSON
- 调用$.getJSON并发送URL参数
- 在document ready中调用getJSON静默失败
- 如何多次调用getJson并在它完成第一个传递项后传递值
- 如何在数组上调用.getJSON
- 如何继续调用getjson,直到它没有空响应
- jQuery:调用 $.getJSON 时填充数组时出现问题
- 当调用getJSON时,防止滚动到顶部