当前位置: 首页 > 面试题库 >

如何返回axios的响应作为回报

吴欣悦
2023-03-14
问题内容

我想返回axios的响应,但始终返回的响应是不确定的:

    wallet.registerUser=function(data){
    axios.post('http://localhost:8080/register',{
    phone:data.phone,
    password:data.password,
    email:data.email
    }).then(response =>{
      return response.data.message;
      console.log(response.data.message);
    }).catch(err =>{
      console.log(err);
    })
    }

    console.log(wallet.registerUser(data));

控制台始终记录为未定义。他们以任何方式返回此响应。


问题答案:

console.log不会等到该功能完全完成后再进行记录。这意味着您将必须进行wallet.registerUser异步处理,主要有两种方法:

  1. 回调-这是当您将函数作为参数传递到现有函数中时,将在axios调用完成后执行。这是如何与您的代码一起使用的:
        wallet.registerUser=function(data, callback){
      axios.post('http://localhost:8080/register',{
        phone:data.phone,
        password:data.password,
        email:data.email
      }).then(response =>{
        callback(response.data.message);
        console.log(response.data.message);
      }).catch(err =>{
        console.log(err);
      })
    }

    wallet.registerUser(data, function(response) {
      console.log(response)
    });
  1. Promise-实现此目的的最简单方法是将其放在async函数名称的前面。这将使从函数返回的所有内容以承诺形式返回。这就是它在您的代码中的工作方式:
         wallet.registerUser=async function(data){
      axios.post('http://localhost:8080/register',{
        phone:data.phone,
        password:data.password,
        email:data.email
      }).then(response =>{
        return response.data.message;
        console.log(response.data.message);
      }).catch(err =>{
        console.log(err);
      })
    }

    wallet.registerUser(data).then(function(response) {
      console.log(response);
    });

以下是有关异步函数的更多信息:

https://developer.mozilla.org/zh-
CN/docs/Web/JavaScript/Reference/Statements/async_function

https://developer.mozilla.org/zh-
CN/docs/Glossary/Callback_function



 类似资料:
  • 我有一个函数,可以使用Pandas分析CSV文件并生成包含摘要信息的编辑器。我想从Flask视图返回结果作为响应。如何返回JSON响应?

  • 我使用Guzzle发出一个异步请求,返回JSON。呼叫工作正常,响应正常,但是: 如果我回应- 我需要使用 JSON 来验证来自服务的响应。我该怎么做?我已经浏览了文档,但我显然错过了一些东西。 本质上类似于将json getbody输出分配给$json: 感谢任何帮助问候

  • 我想返回作为我的的响应。下面是代码: 我收到错误消息: 无法写入内容:未找到类com.couchbase.client.java.query.defaultn1qlqueryrow的序列化程序,也未找到创建BeanSerializer的属性(为避免异常,禁用SerializationFeature.fail_on_empty_beans)(通过引用链:java.util.ArrayList[0])

  • 问题内容: 我使用原型进行AJAX开发,并且使用如下代码: 而且我发现“结果”是一个空字符串。所以,我尝试了这个: 但这也没有用。如何获取responseText供其他方法使用? 问题答案: 请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somefunction。当进程完成工作时(即onComplete),将调用此函数:

  • 我希望在spring boot中返回类似以下内容的json响应: 我的RestController如下所示 但我得到的反应是这样的

  • 我想用响应替换http异常,也就是说,我使用我想返回的responseentity,例如409如果没有通过名称找到用户,509如果没有通过邮件找到用户,我可以确定responseentity中的错误号及其描述吗?如果有,可以举例说明吗?