从javascript中的回调获取数据?

Posted

技术标签:

【中文标题】从javascript中的回调获取数据?【英文标题】:getting data from callback in javascript? 【发布时间】:2018-01-13 22:33:45 【问题描述】:

我想知道将令牌变量返回到高阶函数范围的最佳方法>>所以我可以从高阶函数返回它

signinUser: async (_, data) => 
  const user = await User.findOne('email': data.email.email).exec();

  console.log(bcrypt.compare(data.email.password,user.password, (err,result)=>
    if(err)return("sorry error")
    if(result) 
      var token = jwt.sign(_id: user._id,
                           config.secret, expiresIn: 60 * 60 * 24 * 7);
    
  ))

  return user: id: user._id, name: user.name, email: user.email, token: "this is a token"

【问题讨论】:

【参考方案1】:

如果您想保持异步等待语法,您需要将 bcrypt.compare 调用传递给带有 Q 或 BlueBird 库的 Promise 并编写如下代码:

let result = await Q.nfcall(bcrypt.compare, data.email.password,user.password)
if(result) 
    var token = jwt.sign(_id: user._id,
                       config.secret, expiresIn: 60 * 60 * 24 * 7);


return id: user._id, name: user.name, email: user.email, token: token

【讨论】:

以上是关于从javascript中的回调获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript class获取回调函数数据

javascript 在同步回调中​​获取数据

如何在 JavaScript ajax 调用中从 PHP passthru 获取二进制数据?

如何对 NeDB 数据库进行排序以获取响应? (Javascript 回调/箭头函数语法混乱)

前端,Javascript中dataTable中,如何获取datatable中的columns的各项key:value值

Node.js 和数据库变量中的回调 [重复]