同步和异步js是单线程语言,单线程一次只能完成一个任务。如果有多个任务,则需要对它们进行排队。如果任务排队事件的时间太长,就会导致阻塞。这时,异步操作需要是同步的还是阻塞的,异步的还是非阻塞的,异步操作可能不是顺序执行的,异步任务有一个或多个回调函数。比较常见的异步方法是setTimeOut和setInterVal,可以改变任务执行的顺序。什么是承诺?Promise对象用于表示异步操作的最终完成(或失败)及其结果值。一个Promise必须处于以下三种状态中的一种:pending(待定)):初始状态,既没有fulfilled也没有rejectedFulfilled:表示操作已经fulfilled,rejected方法promise.catch()和promise.finally()关联带有最终确定的承诺的进一步行动。这些方');},1000);promiseA.then(resolut=>{console.log(resolut,'resolut1');返回111}).then(resolut=>{console.log(resolut,'resolut2');返回222}).then(resolut=>{console.log(resolut,'resolut3');thrownewError('error')}).catch(()=>{console.log('promiseAfailed');})result//777'resolut1'//111'resolut2'//222'resolut3'//promiseBfailed静态方法Promise.all(iterable)这个方法会返回一个新的Promise对象,常用于处理状态集合多个Promise对象。promise对象只有在可迭代参数对象中的所有promise都成功时才会触发success,一旦任何一个promise对象失败,都会立即触发failure。Promise.allSettled(iterable)等待直到所有承诺都已解决(每个承诺要么被履行要么被拒绝)。返回一个承诺,当所有承诺都得到履行时,该承诺就会履行。并使用一组对象,每个对象对应一个promise的结果。Promise.any(iterable)接受Promise对象的集合,当其中一个promise成功时,它返回该成功promise的值。Promise.race(iterable)接受Promise对象的集合,并在其中一个承诺成功或失败时返回该承诺的值。constpromiseA=newPromise((resolut,reject)=>{resolut(777)});constpromiseB=newPromise((resolut,reject)=>{resolut(888)});constpromiseC=newPromise((resolut,reject)=>{resolut(999)});Promise.all([promiseA,promiseB,promiseC]).then(res=>{console.log(res);})//[777,888,999]Promise.allSettled([promiseA,promiseB,promiseC]).然后(res=>{console.log(res);})Promise.any([promiseA,promiseB,promiseC]).then(res=>{console.log(res);})//777Promise.race([promiseA,promiseB,promiseC]).then(res=>{console.log(res);})//777参考:https://zhuanlan.zhihu.com/p/...https://developer.mozilla.org。..
