Угловые 7 обещаний работают задушить?идущий блок успеха, блок ошибки одновременно - PullRequest
0 голосов
/ 17 декабря 2018

Я конвертирую свое приложение Angular 2 (Http) в Angular 7 (HttpClient). Я не понимаю, почему это так работает.мой код

     service.ts

  return this.http.get(serviceUrl).toPromise().then((data:any) => {
            return data;
        })

component.ts

this.myService.getList()
    .then((rmanFmvRulesDefList: any) => {
      $.unblockUI();
      console.log('list',rmanFmvRulesDefList);
      this.datasource = rmanFmvRulesDefList.content;
      this.rmanFmvRulesDefList = rmanFmvRulesDefList.content;


      if (this.rmanFmvRulesDefList.length > 0) {

        for (let i = 0; i < rmanFmvRulesDefList.content.length; i++) {
          this.rmanFmvRulesDefList1.push({
            'fmvRuleName':  rmanFmvRulesDefList.content[i].fmvRuleName,
            'fmvCategory':  rmanFmvRulesDefList.content[i].fmvCategory
          })
        }

        /*  for (let i = 0; i < rmanFmvRulesDefList.content.length; i++) {
        this.rmanFmvRulesDefList1.push({
          'fmvRuleName':  rmanFmvRulesDefList.content[i].fmvRuleName,
          'fmvCategory':  rmanFmvRulesDefList.content[i].fmvCategory,
          'fmvType': rmanFmvRulesDefList.content[i].fmvType,
          'fmvRuleStatus':  rmanFmvRulesDefList.content[i].fmvRuleStatus,
          'fmvPrice':  rmanFmvRulesDefList.content[i].fmvPrice ,
          'min':  formatNumber(rmanFmvRulesDefList.content[i].min , '1.2-2'),
          'median': formatNumber(rmanFmvRulesDefList.content[i].median , '1.2-2'),
          'max': formatNumber(rmanFmvRulesDefList.content[i].max , '1.2-2')
        })
      }*/ 
      }

      console.log(this.rmanFmvRulesDefList1, 'rman fm list')

    }).catch((err: any) => {
      console.log('erre block')
          this.growlMsgs=[{severity:'error', summary:'Error Message', detail:'Error occured while getting data!!'}];
           $.unblockUI();
       });

из моего сервиса Я получаю 100 элементов списка

Проблема: мой успех (затем), ошибка (затем)вызов блока за один раз в таком сценарии

  1. Если я подготовлю массив (this.rmanFmvRulesDefList1) с двумя свойствами, он будет работать нормально

    2.Но если я подготовлю массив с 8 свойствами, он будет идти в блоке catch и выполню код

    Пожалуйста, помогите мне, что здесь произошло

...