每次上传的异步js回调

时间:2015-06-08 10:53:51

标签: javascript asynchronous callback angular-file-upload

我是网络开发的新手。我遇到了以下问题:

我在亚马逊s3上传图片并获得回复,其中包含此图片的链接。然后我将它推入数组并将此数组存储在DB中。但我不知道如何在上传所有图像时准确转到下一个功能。

在这个chunk中,当数组中下载图像的计数数量的长度等于响应中接收的链接数时,我将转到瀑布中的下一个函数。但它起作用的原因只有奇数下载的图像。

你怎么能这样做,只有在我得到所有

之后你才能继续进入瀑布中的下一个功能
$scope.createPromo = function () {
    async.waterfall([
        function(callback) {
            var promImageLoc = [];
            var upload = $scope.uploaderPromo.queue;
            $scope.uploaderPromo.uploadAll();
            $scope.uploaderPromo.onSuccessItem = function(fileItem, response, status, headers) {
                console.log('success response', response);
                    promImageLoc.push(response.location);
                    if (upload.length === promImageLoc.length) {
                    callback(null, promImageLoc);
                }
            }
        },

1 个答案:

答案 0 :(得分:0)

我从未使用async-waterfall,但如果必须这样做,我会使用$q承诺,当收到resolve事件时,您可以调用所需的函数。

开始here

另外,查找$q.all() - 这对你有帮助 这是一个带有成功事件的$q.all()示例(当所有http请求完成时):Is there a second success in angular $q.all() as in jQuery $.get()