Fetch returns promise instead of actual data even after using #39;then#39;(即使在使用 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 而不是实际数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:即使在使用 'then' 之后,Fetch 也会返回 promise 而不是实际数据


基础教程推荐
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 直接将值设置为滑块 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01