【问题标题】:How to return data from function [duplicate]如何从函数返回数据[重复]
【发布时间】:2018-05-24 19:01:55
【问题描述】:

我有这样的功能:

export function getAllUser() {
  let user;
  UserModel
    .find()
    .exec()
    .then((data) => {
      return data;
    })
    .catch((err) => {
      return err;
    });
}

如何从这个函数返回数据?例如,我想定义: user = getAllUser()

【问题讨论】:

    标签: node.js express promise es6-promise


    【解决方案1】:

    就你使用 Promise 而言,你必须返回 Promise 并在外面处理它:

    export function getAllUser() {
      let user;
      return UserModel
        .find()
        .exec()
        .then((data) => {
          return data;
        })
        .catch((err) => {
          return err;
        });
    }
    
    getAllUser()
    .then(data => {
      // here you can access data
    });
    

    【讨论】:

    • 感谢@David,您能更具体地说明如何使用来自 promise 的数据吗?在示例中,您的意思是我调用一个函数并将数据分配给 .then()? 中的变量?
    • 这就是 promise 的工作方式。当你调用一个返回 promise 的函数时,如果你想使用在 promise 内部返回的值,你将把它放入 .then( 试试我写的代码并检查它,然后告诉我如果有效。
    • 它可以找到。非常感谢。
    【解决方案2】:

    你可以像这样使用 async/await:

    export async function getAllUser(){
      return await UserModel.find().exec();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 2019-10-20
      • 2020-02-21
      • 1970-01-01
      • 2021-06-21
      • 2011-09-19
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多