 
        
        
      
        
このページの以降のコードで使う共通コードです。
const timer = (time, type) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if (type === 'resolve') {
                resolve(`${time} 解決`);
            }
            if (type === 'reject') {
                reject(`${time} 拒否`);
            }
        }, time);
    });
};
    
  「Promise.all」の解決の例です。
Promise.all([ 500, timer(600, 'resolve'), timer(700, 'resolve'), timer(800, 'resolve') ]) .then( val => console.log('○', val), val => console.log('×', val) );
○ [500, '600 解決', '700 解決', '800 解決']
    
  「Promise.all」の拒否の例です。
Promise.all([ 500, timer(600, 'resolve'), timer(700, 'reject'), timer(800, 'reject') ]) .then( val => console.log('○', val), val => console.log('×', val) );
× 700 拒否
    
  「Promise.allSettled」の例です。
Promise.allSettled([ 500, timer(600, 'resolve'), timer(700, 'reject'), timer(800, 'reject') ]) .then( val => console.log('○', val), val => console.log('×', val) );
○ [
  {"status": "fulfilled", "value": 500},
  {"status": "fulfilled", "value": "600 解決"},
  {"status": "rejected", "reason": "700 拒否"},
  {"status": "rejected", "reason": "800 拒否"}
]
    
  「Promise.any」の解決の例です。最初に解決するのは、何も待たない「800」になります。
Promise.any([ timer(500, 'reject'), timer(600, 'resolve'), timer(700, 'resolve'), 800 ]) .then( val => console.log('○', val), val => console.log('×', val) );
○ 800
    
  「Promise.any」の拒否の例です。全て拒否の場合です。
Promise.any([ timer(500, 'reject'), timer(600, 'reject'), timer(700, 'reject'), timer(800, 'reject') ]) .then( val => console.log('○', val), val => console.log('×', val) );
× AggregateError: All promises were rejected
    
  「Promise.race」の解決の例です。
Promise.race([ timer(500, 'resolve'), timer(600, 'reject') ]) .then( val => console.log('○', val), val => console.log('×', val) );
○ 500 解決
    
  「Promise.race」の拒否の例です。
Promise.race([ timer(600, 'resolve'), timer(500, 'reject') ]) .then( val => console.log('○', val), val => console.log('×', val) );
× 500 拒否