在 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
它应该是什么样子?
下面应该可以工作。
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
});
};