【问题标题】:getting data from callback in javascript?从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"}
}

【问题讨论】:

    标签: javascript graphql


    【解决方案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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2018-05-24
      • 2018-01-13
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多