日々精進

新しく学んだことを書き留めていきます

promiseをthenの中からrejectする

thenの中でpromiseチェーンをrejectしたい場合、rejectedなpromiseをreturnすればよい。例は以下。

api.ajaxCall(param).then((result: ResponseJSON<A>) => {
  return $.Deferred().reject().promise();
});

thenからpromiseをreturnすると、returnしたpromiseの実行が終わってから次のthenに進む。 例えば、以下のコードではコメントの#1,#2,#3の順で実行される。

api.ajaxCall(param1).then((result: ResponseJSON<A>) => {
  // #1
  return api.ajaxCall(param2).then((result: ResponseJSON<A>) => {
    // #2
  });
}).then(() => {
  // #3
});

参考: