如果我有一些承诺可以并行解决。我可以使用Promise.all()解决它们。但是,如果这些诺言内部也有诺言,该怎么办呢?它们会自动解决还是在Promise.all()之前我必须手动解决它们?
此外,首选哪种方法来解决承诺? 1.收集它们,然后使用Promise.all() 2.创建承诺并等待它们自己解决?
答案 0 :(得分:0)
您可能需要分别解决父级中的每个promise,以确保Promise.all能够很好地实现。
例如,
const nestedAsyncChild = new Promise(resolve => resolve(someMethod));
const asyncChild = new Promise(resolve => resolve(nestedAsyncChild));
const parent1 = new Promise(resolve => resolve(asyncChild));
const parent2 = new Promise(resolve => resolve(asyncChild));
const parent3 = new Promise(resolve => resolve(asyncChild));
Promise.all([parent1, parent2, parent3])
.then(a => {
console.log("Success");
})
.catch(() => {
console.error("Error");
});
如果某人对答案不满意,那么他们应该出于礼貌告诉别人为什么要这么做。将人们赶出答案板无济于事!