62

promiseコールバックが呼び出されると、 「Uncaught (in promise)」reject()という警告メッセージが Chrome コンソールに表示されます。その背後にある理由や、それを取り除く方法に頭を悩ませることはできません。

var p = new Promise((resolve, reject) => {
  setTimeout(() => {
    var isItFulfilled = false
    isItFulfilled ? resolve('!Resolved') : reject('!Rejected')
  }, 1000)  
})

p.then(result => console.log(result))
p.catch(error => console.log(error))

警告:

ここに画像の説明を入力

編集:

onRejectedハンドラーがメソッドに明示的に提供されていない場合.then(onResolved, onRejected)、JS は自動的に暗黙的なハンドラーを提供することがわかりました。次のようになります(err) => throw err。自動生成されたハンドラーが順番にスローします。

参照:

IsCallable( onRejected )` がfalseの場合、
     onRejectedThrower」にします。

http://www.ecma-international.org/ecma-262/6.0/index.html#sec-performpromisetthen

4

4 に答える 4