定义方法 getData1() { // eslint-disable-next-line return new Promise(function (resolve, reject) { setTimeout(function () { console.log("异步任务1执行完成"); resolve("1"); }, 2000); }); }, getData2() { // eslint-disable-next-line return new Promise(function (resolve, reject) { setTimeout(function () { console.log("异步任务2执行完成"); resolve("2"); }, 1000); }); },执行 const dataP1 = this.getData1(); const dataP2 = this.getData2(); Promise.all([dataP1, dataP2]).then((res) => { console.log(res); });执行结果是什么,为什么这样执行
时间: 2024-04-18 09:29:25 浏览: 363
以太网转串口设备
5星 · 资源好评率100%
执行结果是在2秒后打印出"异步任务1执行完成",接着在3秒后打印出"异步任务2执行完成",最后打印出一个包含两个元素的数组["1", "2"]。
这样执行的原因是因为`getData1()`和`getData2()`方法都返回了一个Promise对象,它们是两个并行的异步任务。通过使用`Promise.all([dataP1, dataP2])`,可以等待这两个异步任务都完成后再进行下一步操作。在这个例子中,当两个异步任务都完成后,`then()`方法会被调用,它接收一个包含两个结果的数组`res`,分别是"dataP1"和"dataP2"的resolve值。然后将结果打印出来。
阅读全文