我正在使用nedb
和angularjs
做一个项目。
在angularjs
中,我尝试了所有已知的方法来解决以下问题。在这段代码中,我想显示在doc变量中找到的数据。但是,当我将其存储到taken_quizzes
变量并尝试返回该变量时,每次都会得到未定义的结果。
$scope.chapterChange = function (chapter) {
let taken_quizzes;
score.find({ user_id: $scope.student.id, course_id: chapter }, (err, doc) => {
taken_quizzes = doc
console.log(doc)
})
return taken_quizzes
}
我想将在doc变量中找到的结果返回到taken_quizzes
变量中。
答案 0 :(得分:0)
使用异步API,函数无法返回值,它们只能返回promise:
$scope.chapterChange = function (chapter) {
let deferred = $q.defer();
score.find({ user_id: $scope.student.id, course_id: chapter }, (err, doc) => {
if (err) {
deferred.reject(err);
} else {
deferred.resolve(doc);
};
});
return deferred.promise;
};
$scope.chapterChange(chapter)
.then(function(doc) {
console.log(doc);
}).catch(function(err) {
console.log(err)
});
有关更多信息,请参见