执行流程(宏任务/微任务)
每一个任务(函数)的执行过程都有可能产生宏任务和微任务;
每一个任务执行的最后,需要先执行完所有的微任务,再执行宏任务
如果数组中任意一个任务失败,就会导致整个任务失败
对数组中的每一个promise对象都去处理一下catch,确保不会出现异常