значения переменных не установлены правильно, когда я вызываю функции - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в угловой.Мой вопрос касается отправки ajax-запроса на серверную часть, где важны их последовательности приема.

adminList = null;
ngOnInit() {
  this.getAdminsList();
  this.getRolesList();
  this.getListOfPermissions();
}

getAdminsList(){
    this.http.get(AppSetting.adminApiRootUrl + '/admins', {
      headers: new HttpHeaders({
        'Accept': 'application/json',
        'Authorization': 'Bearer ' + localStorage.getItem('auth_token')
      })
    }).subscribe((response) => {
      this.adminList = response['entire'].list;
    });
}

При написании этого кода я понимаю, что некоторая переменная, например, adminList, не получает правильное значение в html-файле.

После этого я использовал Promise, как показано ниже:

ngOnInit() {
  this.getAdminsList().then((res) => {
    this.adminList = res;
    this.getListOfPermissions().then((res2) => {
      this.permissionsList = res2;
      this.getRolesList().then((res3) => {
        this.rolesList = res3;
        this.fillRolesIntoForm().then((res4) => {
        });
      });
    });
  });
  console.log(this.adminList)
}

getAdminsList() {
  return new Promise((resolve, reject) => {
    this.http.get(AppSetting.adminApiRootUrl + '/admins', {
         headers: new HttpHeaders({
        'Accept': 'application/json',
        'Authorization': 'Bearer ' + localStorage.getItem('auth_token')
      })
    }).subscribe((response) => {
      let adminList = response['entire'].list;
      resolve(adminList);
    });
  });

}

Но когда пишется console.log(this.adminList) в конце функции ngOnInit, он возвращает ноль.

my, вы помогаете мне, что этопроблема

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Если вы хотите получить ответ от всех API, и после этого вы хотите, чтобы он отображался поверх HTML.Затем попробуйте использовать концепцию углового соединения 4/5.

Для справки: Перейдите по этой ссылке - https://medium.com/@swarnakishore/performing-multiple-http-requests-in-angular-4-5-with-forkjoin-74f3ac166d61

Надеюсь, это поможет !!

0 голосов
/ 20 сентября 2018

Вы можете достичь этого, используя следующее.

ngOnInit() {
  this.getAdminsList();
}
getAdminsList(){
   this.http.get(AppSetting.adminApiRootUrl + '/admins', {
  headers: new HttpHeaders({
    'Accept': 'application/json',
    'Authorization': 'Bearer ' + localStorage.getItem('auth_token')
  })
}).subscribe((response) => {
  this.adminList = response['entire'].list;
  this.getRolesList();
});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...