私はこのような関数を持っています。これは、クエリが完了した後にスキーマを返さなければなりません。なぜこの関数が常に未定義の値を返すのか理解できません。 約束が解決しなかった後に戻る
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'を返します。あなたの2番目の例は正しいですが、私は "まだ値を得ることができません"という意味を知らない。値を使用しようとしているコードはどこにありますか? – JLRishe