我需要使用嵌套的获取请求来实现一个函数。我收到以下错误
加载资源失败:服务器响应状态为 404(未找到);
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
async function getCart() {
fetch(base_api_path + '/cart/getAllOrders', {method: 'GET'})
.then(res => res.json())
.then(res => {
res.forEach(income => {
.....
fetch(base_api_path+'/cart/getItems',
{
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(
{
id: income.itemId
}
)
})
.then(res => res.json())
.then(res => {
res.forEach(intel => {
.....
})
})
})
}
告诉我,是否可以在 fetch 中使用 fetch,我的错误是什么?
exports.getAllOrders = async function (req, res) {
if(req.user){
const allOrders = await Orders.findAll({ where: { userId: req.user.id } })
res.send(JSON.stringify(allOrders)) }
}
exports.getItems = async function (req, res) {
const allItems = await Items.findAll({ where: { id: req.body.id } })
res.send(JSON.stringify(allItems));
}
你有异步。我也看到等待。所以你对这个概念很熟悉。那么为什么要使用 promise hell 和 callback hell 就完全不清楚了,async await 完全可以从中拯救自己。
你有点混乱。您正在使用 async/await,它与 Promise 一起使用,然后同时使用。为什么不清楚。
这是一个简单的使用案例
fetch
:因此,要制作第二
fetch
个,必须写在下面。(代码取自https://learn.javascript.ru/async-await)
看看处理异步请求(甚至多个)和响应是多么简单和容易?
关于错误问题:其中一个请求没有以 200 状态响应,并且在正文中它返回的不是 json,而是其他东西,很可能是 html。因此,其中一个电话
res.json()
掉了。