【问题标题】:How to return values after I/O operation using Promise如何使用 Promise 在 I/O 操作后返回值
【发布时间】:2017-10-25 07:06:55
【问题描述】:

我正在尝试使用以下代码从 SailsJS 的数据库中获取所有作者和书籍:

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 完成之前正在运行。指导我如何从 Promise 返回值。

【问题讨论】:

标签: javascript promise return sails.js


【解决方案1】:

如果您想记录结果,您应该等待异步操作完成。您编写代码的方式似乎是您想要这样做:

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

  sails.log(authors)
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多