Javascript AngularJS为什么在一个承诺中使用$q.all()?
我正在熟悉代码库,我到处都能看到:Javascript AngularJS为什么在一个承诺中使用$q.all()?,javascript,angularjs,promise,angular-promise,Javascript,Angularjs,Promise,Angular Promise,我正在熟悉代码库,我到处都能看到: $q.all([promise])。然后(responseFunc) 这对我来说没有意义——我已经阅读了文档,我不知道为什么不使用下面的内容,因为这已经是一个承诺了 promise.then(responseFunc) 有什么我遗漏的吗?前者比后者有什么优势?是的,这有点奇怪,但有一点不同:responseFunc将使用结果数组而不是结果本身进行调用 这可能最好写为 promise.then(res => responseFunc([res])) 或
$q.all([promise])。然后(responseFunc)代码>
这对我来说没有意义——我已经阅读了文档,我不知道为什么不使用下面的内容,因为这已经是一个承诺了
promise.then(responseFunc)代码>
有什么我遗漏的吗?前者比后者有什么优势?是的,这有点奇怪,但有一点不同:responseFunc
将使用结果数组而不是结果本身进行调用
这可能最好写为
promise.then(res => responseFunc([res]))
或
好的,这是我能想到的唯一优势(基于我上面的评论)
responseFunc
是否可能与数据数组一起在其他地方使用?如果是这样,那么优点就是代码重用。或者相反,promise数组可以从另一个长度未知的数组生成,这使得所有案例使用$q.all()
@charlietfl更简单。我同意,但我只是质疑只涉及一个promise的案例,因此故意使用$q.all([promise])代码>
promise.then(Array.of).then(responseFunc)
function responseFunc(arr) {
arr.forEach(data => {
// do stuff with data
});
}
$q.all([promise1, promise2]).then(responseFunc);
$q.all([promise]).then(responseFunc);