无法读取属性未定义
问题描述:
“终于”我想不出最后一线,我不知道为什么。 这个问题可以复制克隆的Git回购 https://github.com/Velua/To-Do-List无法读取属性未定义
this.saveToDos = function(todos){
var queue = [];
todos.forEach(function(todo){
var request;
if(!todo._id){
request = $http.post('/api/todos', todo);
} else{
request = $http.put('/api/todos/' + todo._id, todo).then(function(result){
todo = result.data.todo;
return todo
})
}
queue.push(request);
})
$q.all(queue).then(function(results){
console.log("I saved " + todos.length + " todos!");
})
}
谢谢!
答
究竟做dataService.saveToDos(filteredTodos)回报?
看来你没有返回任何东西,导致未定义的错误。如果你的目的是重置dataService.saveToDos(filteredTodos)完成后的状态,在saveToDos返回一个承诺,并重新设置内部然后
saveToDos(filteredTodos) => {
/* Your Code */
return Promise.resolve(true)
}
saveToDos(filteredTodos).then((val) => if(val) resetState(););
是什么'dataService.saveToDos'返回? – JJJ
'finally()'是一个保留关键字(函数);尝试的一部分...终于赶上...。所以没有尝试阻止,最后会导致这样的错误。 –
@KiranShakya如果它被用作关键字,那会是真的,但事实并非如此。 – JJJ