J'ai un service avec HttpService injecté et je démarre la demande avec @Interval (20000). Dans la fonction d'intervalle, je fais une requête à un autre serveur avec this.http.get(...) mais je ne vois aucune réaction, que ce soit une requête ou une exception. Je ne vois que le journal de la console "handleInterval" ! Qu'est-ce qui ne va pas?

 :
import {HttpException, HttpService, Injectable} from '@nestjs/common'

@Injectable()
export class AppService {
  constructor(private readonly http: HttpService) {}

  @Interval(20000)
  handleInterval() {
    console.log('handleInterval');
    let response = this.http.get('192.168.0.162:8081/diag.fhtml', {responseType: 'arraybuffer'}).pipe(
        map(res => {
          console.log('received data');
          return res.data;
        }),
        catchError(e => {
          console.error(e);
          throw new HttpException(e.response.data, e.response.status);
        }));
  }
 :
 :
}
0
Pascal 10 nov. 2020 à 19:43

1 réponse

Meilleure réponse

Le HttpService de Nest utilise RxJS Observables. Pour déclencher la requête, vous devez ajouter .subscribe() ou faire la fonction async et ajouter .toPromise().

0
Jay McDoniel 10 nov. 2020 à 18:14