【发布时间】:2019-04-08 11:55:48
【问题描述】:
为什么控制台日志最后会显示所有“if”输出?
3 elem :
else
elem :
else
elem :
else
elem :
else
2 elem :
4 if
我期待输出:
elem
if
elem
else ...
我认为它会在每个“elem”之后显示“if”或“else”!
代码如下:
res.docs.forEach((elem) => {
console.log('elem');
if (elem.productType) {
this.Service.function(elem.productType._id).subscribe((result) => {
console.log('if');
const text = result.name;
this.marketPlaceList.push(text);
});
} else {
console.log('else');
this.marketPlaceList.push('');
}
});
【问题讨论】:
-
完全取决于
res.docs的内容,不过帖子中没有显示。另外,如果Service是异步的……等等!Service是否有一个名为function.. 的方法? -
发布
res.docs里面的内容 -
.subscribe()可能是一个异步函数 -
你必须从异步响应中取出
console.log('if');,否则所有forEach循环在开始记录它们时都会结束 -
请注意,您的
this.marketPlaceList数组将按照您预期的顺序排列
标签: javascript if-statement foreach