如何在async forEach循环后添加回调函数?
这是一些更好的背景:
$scope.getAlbums = function(user, callback) {
$scope.albumsList.forEach(function (obj, i) {
$scope.getAlbum(user, obj.id, function(value){
$scope.albums.push(value);
});
});
// callback(); ???
};
$scope.getAlbums('guy123', function(){
// forEach loop is all done!
console.log($scope.albums)
});
Run Code Online (Sandbox Code Playgroud)
控制器:
.controller('Filters', ['$scope','Imgur', function($scope, Imgur) {
$scope.getAlbum = function(user, id, callback) {
Imgur.album.get({user:user, id:id},
function(value) {
return callback(value.data);
}
);
}
$scope.getAlbums = function(user, callback) {
// Callback function at end of this forEach loop?
// Request is async...
$scope.albumsList.forEach(function (obj, i) {
$scope.getAlbum(user, obj.id, function(value){
$scope.albums.push(value);
}); …Run Code Online (Sandbox Code Playgroud) 我们正在使用Django/TastyPie作为后端REST服务提供程序构建Web应用程序,并构建基于AngularJS的前端,使用大量基于$ resource的服务来处理服务器上的CRUD对象.到目前为止,一切都很好!
但是,当我们想要仅更新对象上的一个或两个已更改字段时,我们希望减少我们传送的数据量.
TastyPie使用HTTP PATCH方法支持此功能.我们在对象上定义了一个.diff()方法,因此我们可以确定在进行更新时要发送哪些字段.我找不到任何关于如何在$ resource返回的实例对象上定义/实现该方法以执行我们想要的文档.
我们想要做的是向对象实例添加另一个方法(如此处的Angular.js文档中所述),如myobject.$ partialupdate(),它将:
到目前为止,我找不到任何描述如何执行此操作的文档(或其他SO帖子),但非常感谢任何人可能提出的任何建议.
谢谢.