等待Jquery中的所有异步Rest Api调用完成

时间:2019-03-26 09:22:35

标签: jquery ajax api asynchronous promise

我有剩余的API ulrs数组(将近50个),它们返回相同类型的数据。现在我想进行并行Ajax Get调用并等待所有调用完成,以便在i之后绑定数据从所有Ajax调用中成功获取数据

                var results = [];
                $.each(arrayPageUrls, function () {
                    Utility.GetDataPromise(this, function (data) {
                        console.log(data);
                        results.push(data);
                    }, function (error) {});
                });
                $.when.apply($, results)
                    .then(function () {
                        $.each(arguments, function () {
                            console.log(this[0]);
                        });
                    })

  GetDataPromise: function (apiurl, success, failure) {
        //var deferred = $.Deferred();
        $.ajax({
            url: apiurl,
            method: "GET",
            headers: {
                "Accept": "application/json; odata=verbose"
            },
            success: function (data) {
                success(data);
            },
            error: function (error) {
                failure(error); // deferred.reject(err);
                // error handler code goes here
            }
        });
        // return deferred;
    }

我无法将async的值设置为false,因为一个接一个地执行将花费大量时间。我希望可以使用Promise来实现这一目标,但不了解它。 谁能帮我实现我的功能。

0 个答案:

没有答案