我在采访中收到了这个问题。
以下哪一项是使用$ q.all方法的正确语法?
• $q.all([promise1(),promise2]]).then((values) => {
…
});
• $q.all("promise1", "promise2").then((values) => {
…
});
• $q.all({"promise1":promise1(),"promise2":promise2()}).then((values) => {
...
});
请帮助我!
答案 0 :(得分:0)
第一和第三个答案是正确的。
可能会出现需要一次解决多个promise的时间,这很容易通过$ q.all()通过传入一个Array或Object的promises来实现,一旦两个都被解析就会调用.then() :
let promiseOne = $http.get('/api/todos');
let promiseTwo = $http.get('/api/comments');
// Array of Promises
$q.all([promiseOne, promiseTwo]).then(data => {
console.log('Both promises have resolved', data);
});
// Object hash of Promises
// this is ES2015 shorthand for { promiseOne: promiseOne, promiseTwo: promiseTwo }
$q.all({
promiseOne,
promiseTwo
}).then(data => {
console.log('Both promises have resolved', data);
});