ぷろみすのはなし

resolve.js

Promise.resolve({
  ok: true,
  json: () => Promise.resolve({})
})
  .then(res => res.ok ? Promise.resolve(res.json()) : Promise.reject(res.json()))
  .then(console.log.bind(console))
  .catch(console.error.bind(console))

reject.js

Promise.resolve({
  ok: false,
  json: () => Promise.resolve({})
})
  .then(res => res.ok ? Promise.resolve(res.json()) : Promise.reject(res.json()))
  .then(console.log.bind(console))
  .catch(console.error.bind(console))

$ diff resolve.js reject.js

2c2
<   ok: true,
---
>   ok: false,
$ node resolve.js
{}

$ node reject.js
Promise { {} }

なめとんか.

id:hiroqn に話した

  • 「それは解釈の違いで〜」
  • 「気に入らんのやったら『ぼくのかんがえた最強の Promise』作ればいいんすよ」

やっぱり

ぼくはじゃばすくりぷとがキライです!!!!!

雑感

Promise.resolvePromise.reject の間に対称性がないのがキモいと直感的に感じた,いう話なのだけれど,よくよく考えだすと,そもそもそこに対称性があってしかるべきなのかであるとか,段々とわからなくなってきた.もう僕には何もわからない.