約束

2017-10-25 13 views
0

私は次のコードを使用してSailsJSにデータベースからすべての著者や書籍を取得しようとしている使用してI/O操作後の値を返す方法:約束

module.exports = { 

    all: function(req, res) { 

     let title = 'All Authors' 

     let authors = Author.find({}).then(function(results){ return results }) 
     let books = Book.find({}).then(function(results){ return results }) 

     sails.log(authors) 

    } 

} 

私は次の出力取得しています:

Promise { 
    _bitField: 0, 
    _fulfillmentHandler0: undefined, 
    _rejectionHandler0: undefined, 
    _promise0: undefined, 
    _receiver0: undefined } 

約束完了前にsails.log機能が実行されているような気がします。プロミスから値を返す方法を教えてください。

+1

可能な重複https://stackoverflow.com/questions/14220321:あなたはこれをやりたいようにあなたのコードを書かれている方法は、それはそうです/私は非同期呼び出しからの返答を返す) –

答えて

0

結果をログに記録する場合は、非同期操作が完了するまで待つ必要があります。

Promise.all([Author.find({}), Book.find({})]).then((results) => { 
    let authors = results[0]; 
    let books = results[1]; 

    sails.log(authors) 
}); 
[?私は非同期呼び出しからの応答を返すにはどうすればよい](の