Executar o método get HTTP no Angular sem novas tentativas e esperar até o servidor enviar a resposta?
Eu tenho o seguinte no meu controlador, em um aplicativo Spring-Boot:
@RequestMapping(method=RequestMethod.GET,value="/info")
public DataModel getinfodata()
{
//this method runs some script which takes more than 3 minutes and sends the response back
return run_xyz()
}
No meu aplicativo angular, tenho o seguinte:
export class FetchService {
private _url:string="/info";
constructor(private _http:Http) { }
getData():any
{
return this._http.get(this._url).map((res:Response)=>res.json()).
catch(this.errorHandler).subscribe(data=>console.log(data));
}
errorHandler(error: Response){
console.error(error);
return Observable.throw(error || "Server Error");
}
O problema que estou enfrentando atualmente é que o Httpget
está fazendo tentativas silenciosas para o servidor e, como resultado, meu script caro está sendo chamado 3 ou 4 vezes. Existe uma abordagem pela qual oget
fará apenas uma única solicitação com 0 tentativas e aguardará até que o script seja concluído e a resposta deverá ser enviada novamente. Estou chamando o método getData apenas uma vez.Instantâneo da resposta do back-end Instantâneo do Tomcat em execução na porta 8080 Instantâneo da resposta do servidor em caso normal, quando o script não está em execuçãoCLI angular Resposta final após 189 segundos