【发布时间】:2018-07-14 13:56:46
【问题描述】:
我的问题涉及来自ReadableStreamDefaultReader 的阅读器的错误处理。我猜测来自reader.read() 的 Promise 拒绝通常表示获取请求的网络故障(在这种情况下,我猜想继续阅读是不安全的,我应该完全停止使用该阅读器),但是也许还有其他可能的错误可以安全地继续阅读?
那么在我收到来自reader.read() 的 Promise 拒绝后,在什么情况下我可以继续阅读,在什么情况下我应该完全废弃阅读器?我是否需要反省错误的类型才能做出决定?
【问题讨论】:
-
“保存”是什么意思?什么都不会爆炸?
-
如果你想做出决定,当然你应该检查错误。
-
所以我在一个永久循环
while (true)中有const chunk = await reader.read()调用,只有在遇到chunk.done === true时才会中断。我不希望无限循环的可能性,所以我想在第一个reader.read()拒绝时中断 -
awaited 拒绝的行为就像一个例外——它也会破坏你的循环。您不必为此做任何特别的事情。 -
很有趣,谢谢!我不知道这种行为。所以我还有一个问题:如果我发现那个异常,我可以继续
reader.read()还是会导致另一个拒绝?我不明白单个reader.read()拒绝是否会使整个流无效
标签: javascript fetch-api whatwg-streams-api