Мне нужно решение этой проблемы, которая у меня есть.
У меня есть список обещаний outer_promises_list
.
Внутри обещания. После каждого обещания в этом outer_promises_list
у меня есть еще один список обещаний inner_promises_list
То, что я хочу, - это метод, который вызывается, когда все внешние обещания и все обещания внутри них разрешаются.
Вот мой код для получения контекста:
fetch = require("node-fetch")
function all_promises_resolved_method() {
console.log("All promises resolved ! ");
}
function start_main_process() {
let outer_promises_list = []
let inner_promises = []
start_urls_list.forEach(url => {
outer_promises_list.push(fetch(url).then(resp => resp.text()))
})
outer_promises_list.forEach((outer_prom) =>
{
outer_prom.then(htmlbody =>
{
inner_promises = inner_promises.concat(get_theater_promises());
inner_promises.forEach(inner_prom => {
inner_prom.then(inner_resp => {
inner_resp.clone().text().then(inner_html_body => {
console.log("do synchronous stuff on this html body ");
})
})
})
})
console.log("inner promises skipped , will be resolved later ");
Promise.all(inner_promises.concat(outer_promises_list)).then(all_promises_resolved_method)
})
}
function get_inner_promises() {
inner_promises = []
[url1, url2, url3].forEach((url)=>{
inner_promises.push(fetch(href))
})
return inner_promises;
}
start_main_process() ;
Моя проблема в том, что all_promises_resolved_method
вызывается только тогда, когда внутренние_произведения первого внешнего обещания разрешены. Мне нужно решение для вызова этого метода, когда все внешние обещания и каждое из этих внутренних обещаний разрешены. Какой самый простой и эффективный способ сделать это?