Angular - 从函数返回 promise.then

Angular - returning promise.then from function

我以前从未看过 angular,我正在做一个广泛使用它的项目,我对 promise api 代码感到很困惑。

如果函数returns promise.then(我收集到的是在实现承诺时调用的函数)这是承诺函数的结果吗?当你这样做时是否有任何阻塞,因为结果不是立即可用的?

一个粗略的例子:

$scope.refreshFilters = function (filters) {
    var promise;
    promise = getConfig(filters);
    return promise.then(function (data) {
        return data.availableContent;
    });
};

是否需要立即阻止对 refreshFilters 函数的调用,因为结果不是立即可用的?

正确,promise.then(...) 本身 returns 一个承诺。您可以找到 Promise A+ 规范,其中 $q 主要遵循此处:https://promisesaplus.com/

Promise 是一种处理异步工作的方式。在您的示例中,getConfig(filters) returns 一个承诺,由 .then(...) 调用处理。 refreshFilters returns 是一个承诺,因为 getConfig(filters).then(...) 也是 returns 一个承诺。如果 getConfig 异步执行,那么 refreshFilters 也会。

"then" return 中的 return 是一个承诺,而不是普通值, 所以

return promise.then(function (data) {                    
                return data.availableContent;
            });
};

实际上是return一个承诺。