首页 > 解决方案 > 以角度发出女巫异步(列出来自 Web Api 的元素)

问题描述

这是代码片段:

this.languages = await this.languageService.getAllLanguages().toPromise()

    this.languages.forEach(async (value, index) => {
      console.log(value.name)
      this.originLanguageOption.setDropdownOption (
        value.name,
        index
      )

      this.originLanguageOptions.push(
        this.originLanguageOption     
      )
    })

    this.originLanguageDropdown.setDropdown(
      'Origin language',
      'Choose Language',
      this.originLanguageOptions
    ) 

问题:控制台日志工作正常,它只是列出了数据库中的所有元素,但是当我尝试将数据分配给“this.originLanguageOptions”时,它会覆盖列表中的所有先前元素。数组看起来像:第一个循环:

第二个循环:

第三个循环:

等等

它应该看起来像这样:第三个循环

标签: angulartypescriptasynchronous

解决方案


在 foreach 的每次迭代中,您都在同一实例上使用 setDropdownOption() 。我知道您应该在每次迭代中创建一个选项,然后将其添加到数组中。


推荐阅读