【问题标题】:Reactjs axios returning promise instead of value [duplicate]Reactjs axios返回承诺而不是价值[重复]
【发布时间】:2022-01-03 10:01:16
【问题描述】:

我正在尝试使用 axios 从 API 获取数据,但它一直返回一个 Promise

nodeJs的代码:

router.get('/isAdmin/:userId/:groupeId', async (req, res) => {
    let userId =  req.params.userId
    let groupeId =  req.params.groupeId
    let result = await db.query("select * from groupemembers where userId = ? and groupeId = ? and groupeRole = 'admin'",[userId, groupeId], function(err, result){
        if (err) console.log(err.message);
        if (result.length > 0) return res.send(true);
        else res.send(false)
    })
    return result
})

ReactJs 的代码:

 async function checkAdmin (){
        let user = JSON.parse(localStorage.getItem('userInfo'))
        let groupeId = params.groupeId
        let result = api.get(`/isAdmin/${user.id}/${groupeId}`).then(res => {
            return res.data
        })
        return result
    }

【问题讨论】:

  • 如果它返回一个承诺有什么问题?这不是预期的吗?
  • 试试这个:await api.get(/isAdmin/${user.id}/${groupeId});
  • @HDM91 为什么?这将如何改变任何事情?
  • 您只需要在调用checkAdmin 的地方使用await/then 并获取解析值

标签: javascript node.js reactjs rest express


【解决方案1】:

您没有使用 await 关键字来解决承诺

 async function checkAdmin (){
            let user = JSON.parse(localStorage.getItem('userInfo'))
            let groupeId = params.groupeId
            let result = await api.get(`/isAdmin/${user.id}/${groupeId}`).then(res => {
                return res.data
            })
            return result
        }

【讨论】:

  • 这不会改变任何事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 2021-11-21
  • 2015-02-13
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多