async/await 在全局范围内显示数据

Posted

技术标签:

【中文标题】async/await 在全局范围内显示数据【英文标题】:async/await display data in global scope [duplicate] 【发布时间】:2022-01-10 03:49:31 【问题描述】:

这是我第一次使用 Promise 和 mongoose,我正在尝试将数据保存到全局变量以供以后使用

const getUser = async () => 
    let user 
    try 
       user = await clientModel.findOne(username: email)
       consoe.log(user) 
     catch (e) 
      console.log(e)
    
    return  user
  

  const filteredUser = getUser().then((value) => 
    return value
  ).catch((e) => console.log(e));

  console.log(filteredUser)

用户控制台日志显示内容:


  _id: new ObjectId("61aa75c64e1526131d98f2a1"),
  username: 'paul@beatles.uk',
  chequing: null,
  saving: '1000022',
  __v: 0

但过滤用户一直显示Promise <pending>

【问题讨论】:

所有async 函数都返回一个承诺。调用者必须使用await.then() 从该承诺中获取值。有关说明,请参阅Why do I need to await an async function。 【参考方案1】:

您需要解决使用数据的承诺。阅读here

可以是await或者then

【讨论】:

以上是关于async/await 在全局范围内显示数据的主要内容,如果未能解决你的问题,请参考以下文章

es6之 async await 使用小计

嵌套的 try、catch 和 async、await 请求

使用 async / await 在 firebase 中运行查询

使用async await完成: 等到task线程内任务结束 交给主线程处理事情 task线程内不会出现卡死现象

vue项目使用async await 封装 axios

async/await __generator 未定义