약속

2017-10-25 2 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 기능이 실행되고있는 것 같습니다. Promise에서 값을 반환하는 방법을 안내합니다.

+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) 
}); 
[? 내가 비동기 호출의 응답을 반환 할 방법] (의