this.attachmentList.forEach((attachment, i) => {
    this.service.getPageOfAttachment().flatMap(response =>
        this.service.download((JSON.parse(response['Content']).mediaUrl)))
        .subscribe(response => {
            }, error => (console.log(error)),
            () => {
                if (i > this.attachmentList.length - 1) this.getPdfSharp(pdfSharpByteArray, attachment.entityName, i);
            })
})

在foreach循环的末尾,我检查“i”的值,如果它大于列表长度,我调用函数。这方面的问题是,由于我在循环内订阅,所以i的值并不总是按正确的顺序排列,因此函数被提前调用。如何在foreach循环中迭代订阅,然后在循环和订阅完成时调用函数?

最佳答案

你想过吗?可能不是最干净的,但我觉得可以。这也有助于waiting observable subscribe inside foreach to end

关于javascript - RXJS Angular-如何在包含可观察对象的foreach循环结束时调用函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52088419/

10-12 12:19
查看更多