每次上传的异步js回调
async js callback for each upload
我是网络开发的新手。我遇到了以下问题:
我在 amazon s3 上上传图片并收到回调,其中包含对此图片的 link 响应。然后我将它推入数组并将该数组存储在数据库中。但是我不知道如何在所有图片上传后准确地转到下一个功能。
在这个块中,当数组中下载图像的计数数组的长度等于接收到的响应的 link 的数量时,我将转到瀑布中的下一个函数。但由于某种原因它有效,只有奇数个下载图像。
你怎么做才能在我全部搞定之后才能进入瀑布的下一个功能
$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);
}
}
},
我从未使用过异步瀑布,但如果我必须这样做,我会使用 $q
promises,当收到 resolve
事件时,你可以调用你想要的函数。
开始here.
此外,查找 $q.all()
- 这将对您有所帮助。
这是一个带有成功事件的 $q.all()
示例(当所有 http 请求都完成时):
我是网络开发的新手。我遇到了以下问题:
我在 amazon s3 上上传图片并收到回调,其中包含对此图片的 link 响应。然后我将它推入数组并将该数组存储在数据库中。但是我不知道如何在所有图片上传后准确地转到下一个功能。
在这个块中,当数组中下载图像的计数数组的长度等于接收到的响应的 link 的数量时,我将转到瀑布中的下一个函数。但由于某种原因它有效,只有奇数个下载图像。
你怎么做才能在我全部搞定之后才能进入瀑布的下一个功能
$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);
}
}
},
我从未使用过异步瀑布,但如果我必须这样做,我会使用 $q
promises,当收到 resolve
事件时,你可以调用你想要的函数。
开始here.
此外,查找 $q.all()
- 这将对您有所帮助。
这是一个带有成功事件的 $q.all()
示例(当所有 http 请求都完成时):