使用$ .when从JSON周围获取数据

时间:2016-02-26 18:40:40

标签: jquery json ajax twitch

我有一个成功的功能,我无法弄清楚为什么我没有得到数据。当我单独做它们而不使用“when”时,它正在工作,但我不确定我是否正确使用了“jresult”变量。这是抽搐的api。

success: function(streamdata) {
    $.each(streamdata.streams, function(i, stream){

        var json1 = "https://api.twitch.tv/kraken/users/"+ stream +"";
        var json2 = "https://api.twitch.tv/kraken/streams/"+ stream +"";
        var json3 = "https://api.twitch.tv/kraken/channels/"+ stream +"";

        $.when(
            $.getJSON(json1),
            $.getJSON(json2),
            $.getJSON(json3)
        ).done(function(jresult1, jresult2, jresult3) {
            var channelTitle = jresult1.display_name;
            $(".bbox_content.bbox_videos .content_loader_container").remove();
            $(".bbox_content.bbox_videos").append($('<div class="bbox_item bbox_video_item"><a class="video_item stream_item" href="/stream/' + channelTitle + '" style="background-image:url();"><span class="img"><img width="100%" src="/images/movie_arrow.png"/></span><span class=\"video_time\"></span></a><div class="bbox_video_item_info"><span class="video_title">' + channelTitle + '</span><span class="video_status"></span></div></div>').hide().fadeIn(800));
        });
    });
}

谢谢!

1 个答案:

答案 0 :(得分:0)

jresult中的每个$.when().done()都是一个数组,每个ajax调用的响应数据是该数组的第一个元素

尝试

var channelTitle = jresult1[0].display_name;