I am looping through an existing array and send a request to a REST API to add an additional key/value-pair to my array. My problem now is that the for-loop is faster than my API subscription and I can not properly match the value received from the API. Currently, only the last value is inserted into the array. Thank you for your hints
API Request
getSynonyms(icd): Observable<any> {
  return this.http.get(this.synonymsURL + '?filter[meta_key]=code&filter[meta_value]=' + icd);
}
Add response to my existing array
retrieveSynonyms() {
var obj = this.cardArray;
for (var item in obj) {
  var str = obj[item].type;
  if (str === 'test') {
        var icd = obj[item].conceptId;
        this.restProvider.getSynonyms(icd)
          .subscribe(response => {
            // wait for response from subscribe
            if (response != null) {
              var data = response[0].synonym_type;
              var synonyms = data.replace(/[|]/g,", ");
              obj[item]["otherSynonyms"]=synonyms;
            }
          }, error => console.log('Retrieve Synonyms: Uppsss something went wrong...'))
    }
  }
}
 
    