首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步等待快速api到前端问题的发布

异步等待快速api到前端问题的发布
EN

Stack Overflow用户
提问于 2019-12-25 02:52:10
回答 2查看 447关注 0票数 0

从express成功返回承诺,但在前端与react,我如何能够使用这个承诺,在分派有效载荷,在反应状态挂钩,我想直接推送响应数据的有效载荷。不想用然后抓住。

后端

代码语言:javascript
复制
router.get('/', auth, async (req, res) => {
  try {
    const authUser = await Employee.findById(req.decoded.userid).select('-password');
    console.log(authUser);
    return res.status(200).json({ success: true, authUser });
  } catch (error) {
    return res.status(500).json({ success: false, msg: 'Server error' });
  }
});

前端

代码语言:javascript
复制
const loadUser = async () => {
  try {
    const response = axios.get('/api/auth');
    //console.log(response)
    response
      .then(data => {
        console.log(data);
      })
      .catch(error => {
        console.log(error);
      });

    dispatch({
      type: USER_LOADED,
      payload: response.data,
    });
  } catch (error) {
    dispatch({
      type: AUTH_ERROR,
    });
  }
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-25 03:49:02

像这样试试。

代码语言:javascript
复制
//with Redux-thunk middleware.
const loadUser = () => async (dispatch) => {
  try {
    const response = await axios.get('/api/auth');
    dispatch({
      type: USER_LOADED,
      payload: response.data,
    });
  } catch (error) {
    dispatch({
      type: AUTH_ERROR,
    });
  }
};
票数 0
EN

Stack Overflow用户

发布于 2019-12-25 03:49:58

由于您已经使用了异步函数,所以不能这样做:

代码语言:javascript
复制
const loadUser = async ()=>{

    try {
        const response = await axios.get("/api/auth");
        console.log(response)
        dispatch({
            type:USER_LOADED,
            payload:response.data
        })
   } catch (error) {
        console.log(error)
        dispatch({
            type:AUTH_ERROR
        })
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59474840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档