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分鐘後進行第一次呼叫。有沒有辦法執行一次,然後繼續輪詢? –