22

我在我的组件中进行了一个简单的 fetch 调用,看起来像这样

    var x = fetch(SOME_URL, SOME_POST_DATA)
             .then((response) => response.json())
             .then((responseJSON) => {return responseJSON});

    console.log(x);

调用成功执行,但控制台打印的是 promise 而不是数据。我在这里想念什么?

4

1 回答 1

33

responseJSON Promise的工作方式意味着您需要处理then(). 由于请求的异步性质,外部代码在 Promise 解决时已经返回。

一开始可能很难理解,但这与“传统”AJAX 请求非常相似——您在回调中处理响应。

举个例子:

var x = fetch(SOME_URL, SOME_POST_DATA)
    .then((response) => response.json())
    .then((responseJSON) => {
       // do stuff with responseJSON here...
       console.log(responseJSON);
    });

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

于 2016-08-18T15:23:48.173 回答