【问题标题】:Cannot return the value from a function in AJAX无法从 AJAX 中的函数返回值
【发布时间】:2018-06-30 17:30:56
【问题描述】:

您好,我无法从函数返回值。它的返回未定义。我不知道为什么。下面是代码。

function getData() {
    axios.get('/task')
        .then(response => {
              return response.data.tasks;
        });
}

//calls the function
getData();

但是当我调用 getTaskData 函数时,它只返回 undefined。

请帮忙。谢谢。

【问题讨论】:

    标签: ajax vue.js axios


    【解决方案1】:

    在这种情况下,您正在处理 Promise。它们的行为不像 JavaScript 中的典型函数。我建议从一些基础开始:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

    关于您的问题,getData 没有返回任何内容,您提供的代码中也没有getTaskData

    【讨论】:

      【解决方案2】:

      正如预览回复中所说,您正在处理承诺, 您需要等待完成您的 Ajax 请求,然后处理响应, 在您的代码中,您可以这样做

      async function getData() {
        const response = await axios.get('/task')
        return response
      }
      

      Promise 成功和失败情况的回调函数

      getData()
        .then(response => {
          console.log(response.data.tasks)
        })
        .catch(error => {
          console.log("ERROR")
        }) 
      

      【讨论】:

        猜你喜欢
        • 2013-04-22
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多