AngularJS调用回调函数
AngularJS call callback function
我想调用回调函数,但是我调用错误,获取不到数据
我试过了:
//function with callback
filterList: function(type, cb) {
if (type == 'all') {
var resource = infoboxApi.resource1().query();
} else if (type == 'group') {
var resource = infoboxApi.resource2().query();
}
resource.$promise.then(function(events) {
var eventContainer = [];
angular.forEach(events, function(event) {
eventContainer.push({
id: event.id,
title: event.title
})
});
cb(eventContainer);
});
return wrapSaveHandlers(resource);
}
//call i tried
var newSources = [];
filterList('all', function(result) {
newSources = result;
});
我希望 newSources 包含数据,但如果我这样调用它,它是空的。
有人知道如何正确称呼它吗?
避免在基于承诺的 API 中使用回调。而是使用 return 语句:
//function without callback
filterList: function(type) {
var resource;
if (type == 'all') {
resource = infoboxApi.resource1().query();
} else if (type == 'group') {
resource = infoboxApi.resource2().query();
};
//RETURN the promise
return resource.$promise.then(function(events) {
var eventContainer = [];
angular.forEach(events, function(event) {
eventContainer.push({
id: event.id,
title: event.title
})
});
//RETURN the data
return eventContainer;
});
}
并从 returned 承诺中提取数据:
var newSources = [];
filterList('all').then(function(result) {
newSources = result;
});
.then
方法 return 是一个新的承诺,通过 successCallback
、errorCallback
的 return 值解决或拒绝(除非该值是一个承诺,在这种情况下,它使用 promise chaining.
在该承诺中解决的值来解决
我想调用回调函数,但是我调用错误,获取不到数据
我试过了:
//function with callback
filterList: function(type, cb) {
if (type == 'all') {
var resource = infoboxApi.resource1().query();
} else if (type == 'group') {
var resource = infoboxApi.resource2().query();
}
resource.$promise.then(function(events) {
var eventContainer = [];
angular.forEach(events, function(event) {
eventContainer.push({
id: event.id,
title: event.title
})
});
cb(eventContainer);
});
return wrapSaveHandlers(resource);
}
//call i tried
var newSources = [];
filterList('all', function(result) {
newSources = result;
});
我希望 newSources 包含数据,但如果我这样调用它,它是空的。
有人知道如何正确称呼它吗?
避免在基于承诺的 API 中使用回调。而是使用 return 语句:
//function without callback
filterList: function(type) {
var resource;
if (type == 'all') {
resource = infoboxApi.resource1().query();
} else if (type == 'group') {
resource = infoboxApi.resource2().query();
};
//RETURN the promise
return resource.$promise.then(function(events) {
var eventContainer = [];
angular.forEach(events, function(event) {
eventContainer.push({
id: event.id,
title: event.title
})
});
//RETURN the data
return eventContainer;
});
}
并从 returned 承诺中提取数据:
var newSources = [];
filterList('all').then(function(result) {
newSources = result;
});
.then
方法 return 是一个新的承诺,通过 successCallback
、errorCallback
的 return 值解决或拒绝(除非该值是一个承诺,在这种情况下,它使用 promise chaining.