承诺未决,promisestatus =已解决?

时间:2018-01-01 10:03:15

标签: javascript reactjs promise fetch

我正在尝试访问抓取结果(这里是' body')但仍然可以获得此结果:

承诺{<待定>} 的 : 诺言 [[PromiseStatus]] : "解析" [[PromiseValue]] : 阵列(100)

它说解决但不仅仅是给我我想要的数组。

这是我的代码

    let Categories =  fetch('http://localhost:3001/categories?' )
                 .then((response) => {
                  var data = response.json();

                 return data;


               }).then((body) => {
                    console.log("fetching categories...")
                    console.log(body.categories)

                 return body.categories
               })


    console.log(Categories)
    export default Categories

上述结果来自console.log(Categories)

1 个答案:

答案 0 :(得分:3)

Categories仍然是一个承诺。您必须在导入它的地方调用.then,然后您将在参数中收到body.categories。

编辑: 评论的其他信息(我不能在那里很好地格式化)。

它是异步的,所以它不能转到Redux商店的initialState。你应该:

  • 制作一个获取此数据的动作创建者

  • 获取数据时,使用此数据调度操作,例如: { type: 'CATEGORIES_LOAD', data: data }

  • 制作一个更新此商店的减速器

在您的组件安装时执行此操作创建器,例如componentWillMount,如果你也使用React。