結果:
<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!`)) })