0

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

我在 amazon s3 上传图片并获得回调,其中包含指向该图片的链接。然后我将它推入数组并将这个数组存储在数据库中。但是我不知道在所有图像上传后如何准确地转到下一个功能。

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

你怎么做才能在我得到所有东西之后才能继续在瀑布中的下一个功能

$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);
                }
            }
        },
4

1 回答 1

0

我从未使用过异步瀑布,但如果我必须这样做,我会使用$q承诺,当resolve收到事件时,你可以调用你想要的函数。

从这里开始。

另外,查找$q.all()-这将对您有所帮助。
这是一个$q.all()成功事件的示例(当所有 http 请求都完成时):Angular $q.all() 和 jQuery $.get() 中是否有第二次成功

于 2015-06-08T12:01:20.680 回答