调用资源每 x 个 secons 具有$timeout和处理承诺



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

最新更新