Как получить данные и вызвать API на основе данных другого API-вызова - PullRequest
0 голосов
/ 15 января 2019

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

У меня есть служба, которая получает данные для меня. Если есть какие-либо данные, то я буду использовать эти данные для рендеринга файла HTML. Однако, если нет данных, тогда я должен вызвать другой API для получения данных.

Я вызываю функцию ниже в конструкторе.

this.availableDetailsArray = this.getConstactListBySabhaID(this.route.snapshot.params['id']);

Выше кода вызывает эту функцию.

getAvailableSabhaAttendance(id) {
this.contactService.getAttendanceIfAvailable(id).subscribe(data => {
  let temp = [];
  temp = data.data;
  this.availableSabhaDetails = temp;
 console.log(this.availableSabhaDetails);
});
return this.availableSabhaDetails

}

если есть данные в api выше, то я в порядке. Однако я не могу получить эти данные для вызова другого API.

Вторая функция возвращает это:

{id: 12, topic_name: "Nishtha", sabha_id: 8, sabha_child_id: 1, speaker_name1: 56, …}
absent_contact: "129"
attendance_id: 10
created_at: "2018-12-27 22:13:31"
id: 12
present_contact: "55,118,122,126,116,58,125,119,132"
sabha_child_id: 1
sabha_date_time: "2018/12/18 - 13:45"
sabha_details: "Video Darshan"
sabha_id: 8
speaker_name1: 56
speaker_name2: 18
topic_name: "Nishtha"
updated_at: "2019-01-13 14:50:42"
__proto__: Object

1 Ответ

0 голосов
/ 15 января 2019

В методе getAvailableSabhaAttendance :

  1. у вас уже есть блок (именованные данные) для обработки возвращаемых данных, вы можете включить еще 2 блока
  2. блок ошибок (с именем errr ниже) : который может обработать ошибку, возвращенную из метода сервиса, и, если вы хотите, вызвать вашу «вторую функцию»
  3. блок наконец (записывается как () => {} ниже) : здесь вы можете проверить данные, полученные в первом блоке, и в случае проблем с проверкой вы можете позвонить своему вторая функция '

    getAvailableSabhaAttendance(id) {
      this.contactService.getAttendanceIfAvailable(id).subscribe(
        data => {
          let temp = [];
          temp = data.data;
          this.availableSabhaDetails = temp;
          console.log(this.availableSabhaDetails);
        }
        ,errr => { /* This is the case of error, you can call the 2nd API here  */}
        ,() => {
          /* This is the case of finally, you can validate the data here and if the validations fail, call the 2nd API here  */
        }
      );
      return this.availableSabhaDetails;
    }
...