Angular 链中可选的第一个承诺
Optional first promise in Angular chain
我有 2 个 return 承诺的 $http 调用,但第一个是可选的。我相信我必须首先使用 $q.defer()
创建一个承诺,但我遗漏了一些东西。
这是我的无效尝试:
var p = $q.defer();
if (condition) {
p = p.then(doOptionalFirst());
}
return p.then(doOther());
将这 2 个调用与第一个可选的链接起来的正确语法是什么?
使用 $q.when
(或 $q.resolve
和 AngularJS 1.4.1)来创建一个已经解决的承诺。
var p = $q.resolve();
if (condition) {
p = p.then(doOptionalFirst);
}
return p.then(doOther);
如果您正在使用延迟,则必须链接到 .promise
,然后在适当的时候解决延迟。在这种情况下,您可以考虑如果 condition
为真,则自动解析延迟。因此,您可以仅使用已解决的承诺来跳过一些额外的可能令人困惑的代码。
我有 2 个 return 承诺的 $http 调用,但第一个是可选的。我相信我必须首先使用 $q.defer()
创建一个承诺,但我遗漏了一些东西。
这是我的无效尝试:
var p = $q.defer();
if (condition) {
p = p.then(doOptionalFirst());
}
return p.then(doOther());
将这 2 个调用与第一个可选的链接起来的正确语法是什么?
使用 $q.when
(或 $q.resolve
和 AngularJS 1.4.1)来创建一个已经解决的承诺。
var p = $q.resolve();
if (condition) {
p = p.then(doOptionalFirst);
}
return p.then(doOther);
如果您正在使用延迟,则必须链接到 .promise
,然后在适当的时候解决延迟。在这种情况下,您可以考虑如果 condition
为真,则自动解析延迟。因此,您可以仅使用已解决的承诺来跳过一些额外的可能令人困惑的代码。