为什么我要再创建一个.then从fetch promise中拉出promiseValue

时间:2019-03-27 23:04:39

标签: javascript promise fetch

enter image description here

你好首先,然后解决并产生价值响应。为什么我登录res.text只是一个承诺,而当我使用相同的return进行另一个操作时,接下来.then然后使用相同的res.text就是一个字符串了吗? 有人可以为我解释一下:)?

2 个答案:

答案 0 :(得分:1)

fetch函数返回一个Promise,它以Body响应来解决。

Mozilla: FetchMozilla: Body改写:

  

fetch()方法...返回一个Promise,该请求将解析为对该请求的响应,无论请求是否成功...检索到响应后,可以使用许多方法来定义主体内容是以及应该如何处理。

如果您随后浏览至Body的文档,您会发现它具有许多方法。 Body.text()方法:

  

获取一个Response流并读取它以完成操作。它返回一个用USVString(文本)解析的承诺。始终使用UTF-8对响应进行解码。

您描述的行为是fetch API的预期行为。

答案 1 :(得分:0)

Fetch API返回一个承诺,该承诺解析为响应。 Response本身具有text()方法,该方法也返回一个Promise。您可以使用此方法以文本形式读取Response-Stream。参见https://developer.mozilla.org/en-US/docs/Web/API/Response