Javascript 角度:可观察到。失同步异常错误
我尝试使用以下方法在循环中执行许多查询:Javascript 角度:可观察到。失同步异常错误,javascript,angular,typescript,Javascript,Angular,Typescript,我尝试使用以下方法在循环中执行许多查询: buildQuestions() { 对于(var i=0;i)此.sections[i].questions=rt, er=>console.log(er), ()=>console.log(“OK”); } }是的,JS就是这样工作的。执行回调时,循环已经完成,因此我将获得长度值。您必须将代码放在一个闭包中: buildQuestions() { this.sections.forEach(section => {
buildQuestions()
{
对于(var i=0;i)此.sections[i].questions=rt,
er=>console.log(er),
()=>console.log(“OK”);
}
}是的,JS就是这样工作的。执行回调时,循环已经完成,因此我将获得长度值。您必须将代码放在一个闭包中:
buildQuestions() {
this.sections.forEach(section => {
this.serviceQue.getQuestionsBySectionId(section.section_id)
.subscribe(rt => section.questions = rt,
er => console.log(er),
() => console.log("OK"));
}
});
}
关于这个问题的更多信息:这里您可以解释为什么会发生这种情况:
顺便说一下,这是一个典型的面试问题是的,JS就是这样工作的。执行回调时,循环已经完成,因此我将获得长度值。您必须将代码放在一个闭包中:
buildQuestions() {
this.sections.forEach(section => {
this.serviceQue.getQuestionsBySectionId(section.section_id)
.subscribe(rt => section.questions = rt,
er => console.log(er),
() => console.log("OK"));
}
});
}
关于这个问题的更多信息:这里您可以解释为什么会发生这种情况:
顺便说一下,这是一个典型的面试问题使用let
代替var
使用let
代替var