2016-12-20 11 views
0

Есть ли способ, в Angular 2, следить за изменением API.Angular2 refresh API каждые x минут, чтобы посмотреть изменение в ответе

Вот мой случай:

  • Я толкаю документ к API/документ/загрузить
  • Этот API возвращает DOC идентификатор
  • Использование вызова/документа/doc_id, возвращается API JSON в этом формате:
"errorCode":0, 

"docId":"585846a1afe8ad12e46a4e60", 

"status":0 

Статус может быть:

  • 0 = ожидающие
  • 1 = подписал
  • 2 = подтверждено

Этот статус будет "изменен" работником на удаленном сервере, который подтверждает правильность этого файла , Это состояние только «опрошено» через API.

На моем переднем конце, я компонент, посвященный отображения состояния моего документа:

<p>Current State: {fileState}</p> 

На моем компоненте , как я могу наблюдать за изменением состояния в результате апи вызова : как я могу разместить, например, вызов, который вызовет API каждые x минут, чтобы проверить состояние и соответствующим образом обновить представление?

ответ

1

Вы можете написать что-то вроде этого:

checkStatus(minutes: number, docID: string) { 
    Observable.interval(minutes * 60 * 1000) 
    .switchMap(() => this.http.get(`/documents/${docID}`) 
     // handle http errors here to prevent 
     // breaking of interval observable 
     .catch(error => Observable.of(error)) 
     .map(response => response.json()) 
    .subscribe(data => { 
     this.fileState = 
     data.state === 0 ? 'pending' : 
     data.state === 1 : 'signed' : 'validated'; 
    }) 
} 

Не забудьте импортировать наблюдаемые операторы:

import 'rxjs/add/operator/catch'; 
import 'rxjs/add/operator/map'; 
import 'rxjs/add/operator/switchMap'; 

 Смежные вопросы

  • Нет связанных вопросов^_^