即使在使用 'then' 之后,Fetch 也会返回 promise 而不是实际数据 [英] Fetch returns promise instead of actual data even after using 'then'

查看:9
本文介绍了即使在使用 'then' 之后,Fetch 也会返回 promise 而不是实际数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am making a simple fetch call in my component, which looks like this

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

    console.log(x);

调用成功执行,但控制台打印的是 promise 而不是数据.我在这里错过了什么?

The call executes successfully but the console prints a promise instead of data. What am I missing here?

推荐答案

promise 的工作方式意味着您需要处理 responseJSON inside 的处理程序>然后().由于请求的异步特性,外部代码在 Promise 解决时已经返回.

The way promises works mean you'll need to handle the responseJSON inside the handler for then(). Due to the asynchronous nature of requests the outer code will already have returned by the time the promise resolves.

一开始可能很难理解,但它与传统"AJAX 请求大致相同 - 您在回调中处理响应.

It can be hard to get your head around at first, but it's much the same as a "traditional" AJAX request - you handle the response in a callback.

以你为例:

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

这篇关于即使在使用 'then' 之后,Fetch 也会返回 promise 而不是实际数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆