Promise(& Promise PolyFill)を使わずに、jQueryの Deferred
を用いて非同期処理を書いているときに出くわしたのでメモ。
非同期的にしたくないときでも .then()
をつなぎたいがために以下のように3行書いていました。
a().then(() => {
const defer = new $.Deferred;
// 非同期の間でしたい処理
defer.resolve();
return defer.promise();
}).then(() => b());
ですが、以下のように書けば同じ動作をしてくれます。
2行減るのでちょっと見通しが良くなります。
a().then(() => {
// 非同期の間でしたい処理
return (new $.Deferred).resolve();
}).then(() => b());
以上です。