0
我有一个端点/user/?is_active=1
这给了我如下因素响应投票在端点上并创建一个可观察的结果
{ count: 123,
next: "next_page_url",
previous: null,
results: [
{id: 323, name: "test"},
{id: 324, name: "test2"},
{id: 336, name: "test3"},
{id: 328, name: "test4"},
]
}
我的目标是要表明活跃用户的数量,并更新每60秒通过查询数据在端点上(现在没有socket ...)。 我有一个组件TestComponent
,它使用服务UserService
。
@Component {
selector: 'test',
pipes: [Async],
template: `<div>{{totalActiveUsers}}</div>`,
}
export class TestComponent {
public totalActiveUsers;
constructor(userService: UserService) {
userService.activeUser.subscribe(data => {
this.totalActiveUsers = data.count;
})
}
}
UserService
看起来像这样
import {Http} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {Users} from './user';
@Injectable()
export class UserService {
public acitveUser: Observable<Users> = new Observable()
constructor(private _http: Http) {
}
getActiveUser() {
return this._http.get('/user/?is_active=1').map(res => res.json())
}
...
//incomplete
}
我想轮询enpoint每60秒UserService.activeUser
是一个observable
我可以订阅,这给了我回应,每次我有新的列表活跃用户。
'debounce'也可以用我猜不是'interval'等。我对吗? – micronyks
谢谢@thierry,这个工程。但是这段代码在1分钟后进行第一次呼叫。有没有办法执行一次,然后继续轮询? –