代码之家  ›  专栏  ›  技术社区  ›  Bomber

data.json不是函数错误

  •  1
  • Bomber  · 技术社区  · 6 年前

    Promise.all ?

    可能未处理的承诺拒绝(id:0): TypeError:data.json不是函数 TypeError:data.json不是函数

    export function fetchEvents() {
        let pagesRequired = 0;
        return dispatch => {
            dispatch(isLoading(true));
            fetch(
                "http://wordpress.rguc.co.uk/index.php/wp-json/tribe/events/v1/events?per_page=50&categories=107"
            )
                .then(response => {
                    return response;
                })
                .then(response => response.json())
                .then(data => {
                    const apiPromises = [];
                    pagesRequired = data.total_pages;
    
                    for (let i = pagesRequired; i > 0; i--) {
                        apiPromises.push(
                            fetch(
                                "http://wordpress.rguc.co.uk/index.php/wp-json/tribe/events/v1/events?per_page=50&categories=107&page=" +
                                    i
                            )
                        );
                    }
                    Promise.all(apiPromises)
                        .then(response => {
                            return response;
                        })
                        .then(data => {
                            console.log(data.json());
                        });
                });
        };
    }
    
    2 回复  |  直到 6 年前
        1
  •  0
  •   Arup Rakshit    6 年前

    应该是:

    for (let i = pagesRequired; i > 0; i--) {
      apiPromises.push(
        fetch(
          "http://wordpress.rguc.co.uk/index.php/wp-json/tribe/events/v1/events?per_page=50&categories=107&page=" +
          i
        ).then(resp => resp.json())
      );
    }
    Promise.all(apiPromises)
      .then(data => {
        console.log(data);
      });
    

    apiPromises 应该收集你最终需要的东西的承诺。那就去吧 Promise.all(apiPromises) small demo with fetch 展示如何 Promise.all API正在使用 取来 .

        2
  •  1
  •   adz5A    6 年前

    Promise.all返回一个结果数组,如果您希望 Response response[0].json() .