weixin_33691700 2015-04-01 10:39 采纳率: 0%
浏览 37

多个Ajax异步调用

I have list of lib name from the name I want fetch the author name. for this I made each loop on library name and make async call. I want return all the author name with library name once the call was end. While I try with Async call it return the call back before the call was successes. so I have try to return the callback in success but now the call back was return once the first request completed. I have try with sync call but it block the user interface. so what is the best method to do that. My code

function FetchLibAuthorID(LibCollection, callback) {
$.each(LibCollection, function (key, value) {
    $.ajax({
        url: value.MetadataURI + '?$select=schemaXml',
        type: "GET",
        headers: { "Accept": "application/json;odata=verbose" },
        success: function (data) {
            var listProperties = schemaXml2Json(data.d.SchemaXml);
            LibCollection[key].AuthorID = listProperties.Author;
            LibCollection[key].RootFolder = listProperties.RootFolder;
        },
        error: function (data2) {
            alert('error');
        }
    });
});
return callback(LibCollection);

}

  • 写回答

2条回答 默认 最新

  • weixin_33709219 2015-04-03 12:02
    关注
    var libCollection = [{ MetadataURI: "url1" }, { MetadataURI: "url2" }];
    
    function loadLibrary(complete) {
        if (libCollection.length === 0) {
            complete();
            return;
        }
    
        var lib = libCollection.pop();
        $.ajax({
            url: lib.MetadataURI + '?$select=schemaXml',
            type: "GET",
            headers: { "Accept": "application/json;odata=verbose" },
            complete: function (data) {
                var listProperties = schemaXml2Json(data.d.SchemaXml);
                LibCollection[key].AuthorID = listProperties.Author;
                LibCollection[key].RootFolder = listProperties.RootFolder;
    
                loadLibrary(complete);
            }
        });
    };
    
    // call the function
    
    loadLibrary(function() {
        alert("all libraries have been loaded")
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效