我目前在第一次使用 Promise.all() 时遇到问题(两种获取方法)。目前,当我在控制台记录我的响应时,我可以在响应中的 promiseValue 下看到我试图获取的数据。但我不确定如何访问它?
这是我的代码:
getData: function () {
Promise.all([
fetch('@Url.Action("GetSomething")',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(this.selectedValues)
}),
fetch('@Url.Action("GetSomethingElse")',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(this.selectedValues)
})
]).then(responses => {
if (responses[0].ok && responses[1].ok) {
return responses.map(response => {
return response.json();
});
} else {
throw new Error(`Error ${response.status}`);
}
}).then(responseArray => {
console.log("LOG: ", responseArray);
}).catch(error => {
console.log(error);
});
},
在线阅读答案后,有一些建议可以添加另一个 .then() ,这给了我相同的结果(两个承诺)。我在 StackOverflow 上查看了有关此问题的相关问题,但只是变得更加困惑。我也尝试过执行以下操作,也给出了相同的结果:
...
}).then(responseArray => {
console.log("LOG: ", responseArray);
Promise.resolve([responseArray[0], responseArray[1]]).then((results) => {
console.log("Resolved results: ", results);
});
}).catch(error => {
console.log(error);
});
我现在卡住了!这是 console.log 在响应中显示的内容:
LOG: (2) [Promise, Promise]
>0: Promise: {<Resolved>: (Array(20)}
>1: Promise: {<Resolved>: (Array(10)}
非常感谢您的帮助,我希望我缺少一个小细节。我怎样才能获得这些承诺?谢谢!
Helenr
海绵宝宝撒
相关分类