【问题标题】:Why am I not able to use promise in my basic react app?为什么我不能在我的基本 React 应用程序中使用 Promise?
【发布时间】:2019-05-29 19:08:18
【问题描述】:

我对反应还很陌生,我正在试验 axios get requests 。所以我想要做的是我的公共文件夹中有一个 json 文件,我正在向该文件的位置发出 get axios 请求,然后我将结果打印到一个数组中。

第一种方法运行得非常顺利。下面是函数的demo

输出如下:

显然,这种方法效果很好。

不过,我还在 service.js 文件中创建了一个名为 Fetch 的类。这个类有一个名为 fetch 的方法,它使用 axios 发出 get 请求。

这个类的demo如下:

import React from 'react';
import axios from "axios";

class Fetch extends React.Component
{
    constructor()
    {
        super();
    }
    fetch()
    {
        console.log("Hi i am in fetch of service....");
        axios.get('./config.json').then(response=>{
            var x=response.data;
            console.log("----------------------------------------->"+JSON.stringify(x));
            
            return x;
        },(err)=>{
            return err;

        })
        
    }
}

export default Fetch;

我在另一个js文件中导入了这个类,并制作了这个类的一个对象来调用fetch方法。下面给出我的使用demo:

但是,当我尝试这样做时,出现以下错误:

我做错了什么?如果是第一次成功,那为什么现在不行了?

【问题讨论】:

  • 请发布从您的编辑器复制的文本,而不是您的编辑器的图片。
  • 在你的Fetch类中,从fetch()函数返回axios请求
  • @Kobe...我将响应存储在一个变量中并返回它。这是你的意思吗...??
  • @AshutoshKumar 看到我的回答

标签: javascript reactjs promise axios


【解决方案1】:

您收到该错误是因为 Fetch.fetch() 没有返回任何内容,更不用说承诺了。

您正在尝试在 void 函数上调用 .then(),因此您将无法访问响应。

在您的Fetch 类中,从fetch() 函数返回axios 请求:

fetch() {
    return axios.get('/config.json').then(response => {
        // your code
    })
}

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 2018-12-29
    • 2021-06-19
    • 2014-05-24
    • 2021-09-19
    • 2021-04-13
    • 2021-11-07
    • 2016-04-28
    相关资源
    最近更新 更多