【发布时间】:2013-04-24 18:22:29
【问题描述】:
在服务中,我想使用 $http 加载资源。加载资源后,我想将其存储在变量中。然后,我需要加载一个子资源并存储它。我知道 promise 是为这种工作而设计的,但似乎有太多如何使用它,我有点困惑。这是我的代码:
var project = {};
var todo = {};
function init(){
var idProject = 21;
var idTodo = 6;
// If idProject is specified
if ( idProject != null ) {
// First, load project data
var promise = WorkspaceManager.getProject($rootScope.workspace, idProject);
// Then save project data
promise.then(function(response){
project = response.data;
return project;
});
if ( idTodo != null ) {
// Then load todo data
promise.then(function(project){
return ProjectManager.getTodo(project, idTodo);
});
// Then save todo data
promise.then(function(response){
todo = response.data;
return todo;
});
}
}
console.log(project); // returns {}
}
init()
提前致谢!
【问题讨论】:
-
return project;和return todo;应该做什么? -
它使承诺序列继续进行。它在下一个
then中检索。像这样:if ( idTodo != null ) { // Then load todo data promise.then(function(project){ -
不,结果只会在 chained 中使用 - 如果你在同一个 Promise 上放置很多回调,则不会。
标签: javascript angularjs promise