Javascript 为什么我的';打字机&x27;迭代器以错误的顺序打印字符串?

Javascript 为什么我的';打字机&x27;迭代器以错误的顺序打印字符串?,javascript,iterator,Javascript,Iterator,如果这是一个愚蠢的问题,我深表歉意,但我不明白为什么下面的代码会以看似随机的顺序记录字符串中的字母: const aString=“您好,这是一个字符串”; 常量迭代器=aString[Symbol.iterator](); var打字机= 设置间隔(()=>{ if(iterator.next().done){ clearInterval(打字机); }否则{ log(iterator.next().value); } }, 200); 我不明白为什么下面的代码以看似随机的顺序记录字符串中的

如果这是一个愚蠢的问题,我深表歉意,但我不明白为什么下面的代码会以看似随机的顺序记录字符串中的字母:

const aString=“您好,这是一个字符串”;
常量迭代器=aString[Symbol.iterator]();
var打字机=
设置间隔(()=>{
if(iterator.next().done){
clearInterval(打字机);
}否则{
log(iterator.next().value);
}
}, 200);
我不明白为什么下面的代码以看似随机的顺序记录字符串中的字母:

它不会,它会跳过其他角色。这是因为您在每次迭代中调用
.next
两次
if(iterator.next().done)
将使用一个字符。仅调用
.next()
一次:

const aString=“您好,这是一个字符串”;
常量迭代器=aString[Symbol.iterator]();
var打字机=
设置间隔(()=>{
const next=iterator.next();
如果(下一步,完成){
clearInterval(打字机);
}否则{
console.log(next.value);
}
}, 200);
我不明白为什么下面的代码以看似随机的顺序记录字符串中的字母:

它不会,它会跳过其他角色。这是因为您在每次迭代中调用
.next
两次
if(iterator.next().done)
将使用一个字符。仅调用
.next()
一次:

const aString=“您好,这是一个字符串”;
常量迭代器=aString[Symbol.iterator]();
var打字机=
设置间隔(()=>{
const next=iterator.next();
如果(下一步,完成){
clearInterval(打字机);
}否则{
console.log(next.value);
}

}, 200);啊!非常感谢你。这是有道理的。不过,我太业余了,不知道为什么会这样。如果您有时间,我将非常感谢您帮助理解这一点?您具体不明白什么?起初,我不明白为什么
If(iterator.next().done)
将构成下一个()调用。现在我想起来似乎完全是荒谬的,但在我的头脑中,它“算数”是没有意义的,因为我的意图只是把它作为if…else语句的一个条件。我对编程非常陌生,我不习惯事物中没有隐含的意义:PAh!非常感谢你。这是有道理的。不过,我太业余了,不知道为什么会这样。如果您有时间,我将非常感谢您帮助理解这一点?您具体不明白什么?起初,我不明白为什么
If(iterator.next().done)
将构成下一个()调用。现在我想起来似乎完全是荒谬的,但在我的头脑中,它“算数”是没有意义的,因为我的意图只是把它作为if…else语句的一个条件。我对编程非常陌生,我不习惯事物中没有隐含的意义:P