【发布时间】:2019-02-04 15:30:05
【问题描述】:
我正在尝试使用 Fetch API。从示例看来,GET 请求需要一个then 以某种方式解析响应。
目前我正在这样做
fetch(url)
.then(response => response.json())
.then(response => {
console.log(response);
});
但是,第一个 then 似乎是样板文件。我试图避免它,例如:
fetch(url)
.then(response => {
console.log(response.json());
});
但这会记录我一个待处理的Promise,状态为resolved。
我阅读了有关此主题的其他问题并阅读了一些有关承诺的内容,但我不明白是否可以将其合并到一个 then 中(如果可以,如何?)。
例如,here 的两个答案指出
没有必要使用多个'.then'
和
没有充分的理由拥有两个 .then() 处理程序,因为每个处理程序的代码都可以合并到一个 .then() 处理程序中
但我无法让这个例子真正起作用——我仍然得到了一个承诺:)
相反,被接受的anwser here 解释说.then 实际上对结果做了一些事情(从promise 中提取返回值),但如果我自己能以某种方式做到这一点,我无法理解,比如response.json().then()或response.json().getVal() 或双then 语法是唯一的方法。
【问题讨论】:
标签: javascript es6-promise fetch-api