首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Axios放回未定义[React + Axios]

Axios放回未定义[React + Axios]
EN

Stack Overflow用户
提问于 2022-06-17 11:30:08
回答 2查看 196关注 0票数 0

大家好,我正在做一个公理,用来更新我的数据。然而,我得到了一个不明确的回应。提前谢谢你

函数调用Axios:

代码语言:javascript
复制
export function exUpdateMovie(movie) {
 
  Axios.put(baseURL + "/api/update", {
    movieName: movie.movieName,
    movieReview: movie.movieReview,
    id: movie.id,
  })
    .then((response) => {
      // console.log(response);
      return response;
    })

    .catch((e) => {
      console.log(e);
      return e;
    });
}

函数在app.js中调用exUpdateMovie(电影)函数:

代码语言:javascript
复制
const handleUpdateMovie = (movie) => {
    console.log("UpdateMovie Passed!");

    try {
      const res = exUpdateMovie(movie);   
      alert(res?.data);
    } catch (error) {
      console.log(error);
    }
  };

当我警告我的响应时输出是:未定义的

结清:

handleUpdateMovie

  • need

  • 需要添加异步并等待通过return Axios.put()

返回Axios。

为帮助我干杯。非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-17 11:40:17

因为exUpdateMovie什么都不回。回报承诺:

代码语言:javascript
复制
export function exUpdateMovie(movie) {

  return Axios.put(/* all your Axios code */);

}

然后,在消费结果时,将其视为一种承诺:

代码语言:javascript
复制
exUpdateMovie(movie).then(res => {
  alert(res?.data);
});
票数 1
EN

Stack Overflow用户

发布于 2022-06-17 11:42:11

是的,因为您的api调用正在返回一个承诺,在那里您需要等待承诺执行完成,所以让您的函数异步,并包装API调用等待。

代码语言:javascript
复制
export async function exUpdateMovie(movie) {
  const result = await  Axios.put(baseURL + "/api/update", {
    movieName: movie.movieName,
    movieReview: movie.movieReview,
    id: movie.id,
  })
    return result
}

const handleUpdateMovie = async (movie) => {
    console.log("UpdateMovie Passed!");

    try {
      const res = await exUpdateMovie(movie);   
      alert(res?.data);
    } catch (error) {
      console.log(error);
    }
  };
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72658721

复制
相关文章

相似问题

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