<script> const url="http://127.0.0.1/index.php?id="; let task = []; let task01 = function(){ return new Promise( function(resolve , reject){ $.ajax({ url: url+1, context: document.body, success: function(){ resolve('success'); console.log("01"); } }); }) } task[0]= new Promise( function(resolve , reject){ $.ajax({ url: url+2, context: document.body, success: function(){ resolve('success'); console.log("02"); } }); }) task[1] = new Promise( function(resolve , reject){ $.ajax({ url: url+3, context: document.body, success: function(){ resolve('success'); console.log("03"); } }); }) task01().then(function(value){ Promise.all(task); })</script> 先后顺序
1 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
正常来说应该是先执行task[0]再执行task[1],因为new Promise()里面的函数是立即执行
的,所以ajax的执行顺序是task[0]先于task[1]先于task01。
Promise.all()的作用是只有task[0]、task[1]的状态都变成fulfilled,或者其中有一个变为rejected,才会调用Promise.all方法后面的回调函数
所以
task01().then(function(value){ Promise.all(task); })
这里的作用就是执行task01里面的ajax,等待状态变成fulfilled,执行Promise.all(task)
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消