使用 $timeout 和处理承诺每 x 秒调用一次资源?

Call resource every x secons with $timeout and handling promise?

在 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
});

但是这个returnsvm.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
    });
};