Promise(new $.Deferred())のサンプル

結果:

<input type="number" value="2000" id="n">
<button id="b">実行</button>
<p>結果: <span id="r"></span></p>
const sleepDeferred = ms => {
  const d = new $.Deferred()
  const isFast = ms > 1000
  setTimeout(() => {
    isFast ? d.resolve(ms) : d.reject(ms)
  }, ms)
  return d.promise()
}

$('#b').on('click', () => {
  $('#r').empty()
  sleepDeferred($('#n').val())
    .done(ms => $('#r').text(`${ms}ms fast!`))
    .fail(ms => $('#r').text(`${ms}ms slow!`))
})

元記事を表示する