Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套的getJSON调用_Javascript_Jquery_Json_Nested_Getjson - Fatal编程技术网

Javascript 嵌套的getJSON调用

Javascript 嵌套的getJSON调用,javascript,jquery,json,nested,getjson,Javascript,Jquery,Json,Nested,Getjson,所以。。我对Javascript和JSON都是新手。我正在开发一个网页,在这种情况下需要评论,然后是当前的用户名 为了开发它,我尝试使用getJSON()方法创建一个返回用户名的函数,但显然不起作用。我想到的是使用嵌套的getJSON调用 大概是这样的: $.getJSON(getCommentsURL, function(jsonComments){ $.getJSON(getUsernameURL, function(username){ jsonComments[0

所以。。我对Javascript和JSON都是新手。我正在开发一个网页,在这种情况下需要评论,然后是当前的用户名

为了开发它,我尝试使用getJSON()方法创建一个返回用户名的函数,但显然不起作用。我想到的是使用嵌套的getJSON调用

大概是这样的:

$.getJSON(getCommentsURL, function(jsonComments){
    $.getJSON(getUsernameURL, function(username){
        jsonComments[0].deleteButton = (jsonComments[0].username === username)
        // programming logic
    });
});
代码示例的第3行描述了我需要这两个信息的主要原因

我的问题是,这种实施方式在传统上可以接受吗?它确实可以工作,但是可能有一种更合适的方法来实现它。我之所以关心约定以及合适的方法,不仅是因为我自己的知识,而且因为这是一项学校作业,要求代码干净、正确(不仅是因为它有效)


非常感谢您的回答。

问题中的方法应返回预期结果,您也可以使用
.then()
。您还可以包括链接到
.fail()
catch()
以处理错误。注意
返回
中的
语句。然后()


有问题的方法应该返回预期结果,您也可以使用
.then()
。您还可以包括链接到
.fail()
catch()
以处理错误。注意
返回
中的
语句。然后()


这是一个很好的使用jQuery对-


这是一个很好的使用jQuery对-


是否存在任何控制台错误/输出?所有操作均按预期进行,控制台发送2个get请求,并提供预期响应。好的,回答这个问题,这是我从控制台获得的信息。所以控制台中没有错误。然后我会说这很好,我能想到的唯一真实的事情可能是使用承诺而不是回调。是否有任何控制台错误/输出?所有工作都如预期的那样,控制台发送2个get请求和预期的响应。好吧,回答这个问题,这是我从控制台获得的信息。所以控制台中没有错误。然后我会说这很好,我能想到的唯一真正的事情是使用承诺而不是回调。这个看起来确实好得多。我在找像这样的东西,但是找不到。这就是嵌套实现的原因。这个看起来确实更好。我在找像这样的东西,但是找不到。这就是嵌套实现的原因。在我的例子中,不需要catch()或fail()函数。这种方式使代码更长。即使使用其他方法,它仍然是一个嵌套的getJSON实现。无论如何谢谢你!在我的例子中,不需要catch()或fail()函数。这种方式使代码更长。即使使用其他方法,它仍然是一个嵌套的getJSON实现。无论如何谢谢你!
$.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)
})
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
});