当我向api服务器调用HTTP请求时,响应被延迟。
显示空表后,2秒后显示响应。
有没有办法解决这个问题?
答案 0 :(得分:1)
使用resolvers
可能会修复,显示空表。以下是如何使用resolver
// resolver.ts
import { Injectable } from '@angular/core';
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
import { ContactsService } from './contacts.service';
@Injectable()
export class ContactResolve implements Resolve<any> {
constructor(private contactsService: ContactsService) {}
resolve(route: ActivatedRouteSnapshot) {
return this.contactsService.getContact(route.params['id']);
}
}
// router.ts
import { Routes } from '@angular/router';
import { ContactsListComponent } from './contacts-list.component';
import { ContactsDetailComponent } from './contacts-detail.component';
import { ContactResolve } from './contact.resolve';
export const AppRoutes: Routes = [
{ path: '', component: ContactsListComponent },
{
path: 'contact/:id',
component: ContactsDetailComponent,
resolve: {
contact: ContactResolve
}
}
];
An example with plunker, of how to use resolvers in angular2
答案 1 :(得分:0)
由于您从服务器获取数据,因此网络飞行应该消耗一些时间,具体取决于您的互联网连接速度以及后端服务器对您的查询的响应情况。现在有一些选项可以让您的用户体验更好。
async
管道,以便angular知道它需要订阅数据并等待而不是显示空表。希望这有帮助!如果您需要任何方法的代码段,请在评论中提及。