在Angular应用中,我有一个API调用。我想让这个电话每5秒运行一次因此我应该使用$ timeout,我在想。但我不确定,我应该如何处理这个承诺。
这是我的调用,在实现$ timeout之前,它有效:
vm.products = Products.get();
vm.products.$promise.then(function (data) {
// do something
});
然后我尝试实现$ interval,如下所示:
vm.products = $interval(Products.get(), 5000);
vm.products.$promise.then(function (data) {
// do something
});
但这会返回vm.products.$promise is undefined
它应该怎么样?
答案 0 :(得分:1)
下面应该可以工作。
vm.products = $interval(Products.get, 5000);
vm.products.then(function (data) {
// do something
});
不要vm.products
使用Product.get()
承诺,如果在5秒内没有完成,那么旧的待处理承诺就会搞乱。
$interval(productPromise, 5000);
function productPromise() {
Products.get().$promise.then(function (data) {
// do something
});
};