Angular 如何处理来自慢速服务器的响应
我必须从服务器上获取一些数据。服务器的响应非常慢。我希望将响应存储在一个数组中,以便它可以在模板中显示。其目的是延迟将响应存储到阵列中,直到服务器返回响应 我已经尝试过setTimeout(),但是失败了 Ts文件 在控制台中, Book details inside函数显示来自服务器的响应结果 但是Angular 如何处理来自慢速服务器的响应,angular,ionic-framework,ionic3,angular5,angular7,Angular,Ionic Framework,Ionic3,Angular5,Angular7,我必须从服务器上获取一些数据。服务器的响应非常慢。我希望将响应存储在一个数组中,以便它可以在模板中显示。其目的是延迟将响应存储到阵列中,直到服务器返回响应 我已经尝试过setTimeout(),但是失败了 Ts文件 在控制台中, Book details inside函数显示来自服务器的响应结果 但是 函数外部的书籍详细信息显示为空。我认为您应该在函数调用的回调中执行所有操作/赋值。 - isResponce: boolean =false; ticketdetails()
函数外部的书籍详细信息显示为空。我认为您应该在函数调用的回调中执行所有操作/赋值。
- isResponce: boolean =false;
ticketdetails()
{
this.funName = 'online_service';
var url = { url:'bookingdetails?username=....&password=....&bookingCode=' +
this.id};
console.log(url);
this.myservice.online_service(this.funName,url).subscribe(response =>
{
if (response.code === '1')
{
this.isResponce = true;
this.bookDetails = response`enter code here`;
console.log('Book details inside function', this.bookDetails);
}
})
由于调用将是异步的,所以在您并没有从服务器得到响应之前,将不会执行进一步的代码
API调用后的代码将被执行,因此我认为API调用的设计方式应该是将其响应包装在回调中,然后使用它。
API调用后编写的代码将在该行之后立即执行,它不会等待响应到达,因为这是Java脚本的明显特性
示例:休息服务
customHttpDefaultOptions= {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
};
postRestCall(requestBody, data) {
this.httpClient.post(apiURL, requestBody, this.customHttpDefaultOptions).pipe(retry(1))
.subscribe(response => {
data(response);
}, error => data(this.handleError(error)));
}
所以在这里,您还应该做一些事情,一旦响应到达,它将被包装在回调中,您可以稍后从回调中使用它
样本:
this.restService.postRestCall(requestBody, data => {
this.his.bookDetails = data;
});
所以,如果您已经创建了某种rest服务,那么您也可以重用API调用机制,而不是编写API调用的锅炉板代码
这根本不是速度慢的问题。您可以使用布尔值来处理它
this.restService.postRestCall(requestBody, data => {
this.his.bookDetails = data;
});