Угловое разрешение названия компании из идентификатора компании в цикле

Теперь в ES6 вы можете создавать ленивые кешированные свойства. При первом использовании свойство оценивает один раз, чтобы стать обычным статическим свойством. Результат: во второй раз пропущена служебная служебная функция.

Магия находится в геттере.

const foo = {
    a: 5,
    b: 6,
    get c() {
        delete this.c;
        return this.c = this.a + this.b
    }
};

В стрелочке геттер this поднимает окружающий лексический охват .

foo     // {a: 5, b: 6}
foo.c   // 11
foo     // {a: 5, b: 6 , c: 11}  

1
задан hades 23 March 2019 в 14:13
поделиться

2 ответа

вы можете сделать это

items = [];
 companyIDs = [1234, 5678];


      FillItems(){
        for(let i=0; i<this.companyIDs.length;i++){
          this.getcompanyname(this.companyIDs[i]);
        }
      }
      getcompanyname(companyid:number){
        this.companyService.getCompanyName(companyid).subscribe((companyName) => {

          this.items.push({
            compId: companyid,
            compName:companyName
          })
      }
0
ответ дан Thivanka Saranatha 23 March 2019 в 14:13
поделиться

Это много http запросов, если вы повторяете свои идентификаторы и получаете для каждого ID компании. Тем не менее, это то, что вы можете сделать, чтобы ваш конкретный случай стал работать:

companyIDs.forEach(companyId => {
    this.companyService.getCompanyName(companyId)
        .subscribe(compName => this.items.push({
             compId: companyId, compName: compName 
    })
});

проблема с этим подходом заключается в том, что вы должны делать запрос на обслуживание за одну итерацию, что означает, что массив из 100 Id сделал бы это для 100 HTTP-запроса, что не близко к идеалу ....

Если вы можете сделать httpCall, который получит всю таблицу идентификаторов и названий компаний в таблице, как показано в вашем вопросе ... например, this.service.getAllCompanies() // return all the company objects with { id, name }, тогда вы можете сделать этот вызов, и ТО перебрать В результате получается простой http-запрос.

0
ответ дан Francisco Santorelli 23 March 2019 в 14:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: