我有一個這樣的函數,它應該在查詢完成後返回一個模式。我不明白爲什麼這個函數總是返回未定義的值。 承諾解決後不起作用返回
var loadSchema = function(className) {
\t var query = schemaModel.findOne({className: className})
\t var promise = query.exec()
\t promise.then(function(schema){
\t \t console.log(schema)
\t \t return schema
\t }).then(null, console.log)
}
我也試圖返回從功能的整體承諾,但我仍不能得到的價值。像這樣
var loadSchema = function(className) {
\t var query = schemaModel.findOne({className: className})
\t var promise = query.exec()
\t return promise.then(function(schema){
\t \t console.log(schema)
\t \t return schema
\t }).then(null, console.log)
}
誰能告訴我這個程序的流程。我看過其他類似的問題在stackoverflow,但我不能得到這個背後的整個想法。
編輯: 這是我使用此值的代碼。
module.exports.getSchema = function(req) {
\t var className = req.params.classname
\t var schema = loadSchema(className)
\t console.log(schema)
\t return schema
}
第一例子返回'undefined',因爲你沒有返回任何東西。你的第二個例子是正確的,但我不知道「仍然無法獲得價值」的含義。代碼在哪裏試圖使用該值? – JLRishe