Javascript:字符串比较返回true,尽管字符串不同(间歇性问题)

sr4lhrrt  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(131)

我正在使用WritableStream处理数据块,解码的数据是一个json字符串,如果它以,开头,我需要删除逗号。
但问题是,在块被解码为字符串之后,我检查第一个字符

const startsWithComma = chunk.at(0) === ','

并且有时候它返回true,尽管块没有以,开始,并导致JSON.parse稍后失败。
我尝试过的事情:

  • 使用.at()替代项,如.charAt().startsWith()chunk[0]

该问题是间歇性的,这意味着有时它可以处理整个数据,有时可能中途失败。

ut6juiuv

ut6juiuv1#

因此,我的评论如下:
从你的图像,是它的可能性,这调试是运行后,这逗号已经被取出?是它的也可能性,这chunk可能开始与超过1逗号,所以有时调试在那确切的斑点将仍然显示一个逗号?
解决方案是使用while循环去掉逗号,例如

while( chunk.at(0)===',' ){
  chunk = chunk.slice(1).trim();
}

现在我不知道为什么要这样做if isFirstChunk,所以我不去管它,但是上面的循环应该可以解决您的startsWithComma问题:D

相关问题