从日志输出来看 先执行了p1后执行p2,
问题
1.Promise.all的参数接受一个Promise数组, Promise数组中每一个Promise的执行函数的 开始执行顺序是怎样的?
是按照数组中的顺序 开始执行每一个Promise的执行函数吗?从实际日志输出来看 好像是数组的倒序
(注意问题问题的是Promise的执行函数的 开始执行顺序,并不是Promise的完成顺序,仅仅是执行函数的开始实行顺序)
- 实际Promise.all的场景中参数Promise数组中的每一个Promise之间应该是没有依赖性的吧?
我有一个场景: 做一个爬虫,点击登录按钮,页面发生跳转。我需要等待登录请求和页面跳转这两个事件的执行完成。
在 puppeteer API的写法如下
const [response] = await Promise.all([
page.waitForNavigation(waitOptions),
page.click(selector, clickOptions),
]);
我对这个写法的疑问是: 正常情况下是 点击按钮先执行,然后才会发生页面的跳转,等待页面的跳转完成,也就是这两个Promise之间的执行函数有顺序要求, 这种写法合理吗?
b
Promise.all
,应该await
两次。