Promise.resolve() .then(()=>{ log('onFulfilled#1 returns rejected promise'); return Promise.reject('new promise value from onFulfilled'); }) .catch((value)=>{ log('onRejected#2 got value:', value); }); function log(...strings){ let node = document.createElement('div'); node.innerText = strings.join(' '); document.getElementById('log').appendChild(node); }