我是网络开发的新手。我遇到了以下问题:
我在亚马逊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);
}
}
},
答案 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()