2017-06-08 11 views
0

これはPromise内でリダイレクトする適切な方法ですか?これは悪影響を引き起こしますか?メモリリークの可能性がありますか?fetch()内のPromise内部でリダイレクトを実行する方法

 .then(function (response){ 
      if(response.redirected){ 
       location.href = response.url; 
      } 
      return response.json(); 
     }) 
     .then(function (record) { 
      console.log("record update:",record); 
       onRecordUpdate(record); 
     }) 
+3

現在のページの状態を破棄する新しいページを読み込んでいるため、メモリリークが発生しません。 – nils

+0

これは、約束の中でどうやっているのか、それ以外のところでどう違うのですか? – Bergi

+0

リダイレクトの時点で、チェーンを壊して最後の既存の約束を解決しますか? – monkeyjumps

答えて

0
.then(function (response){ 
     if(response.redirected){ 
     location.href = response.url; 
     } 
     return response.json(); 
    }) 
    .then(function (record) { 
     console.log("record update:",record); 
     onRecordUpdate(record); 
    }) 

基本的には、その場所を変更した後にコードを実行されません。ブラウザーが遅くなっても理論的にはうまくいかない場合は、ブラウザが動作することがあります。だから私の意見では、サイレントエラーを避けるために、場所を変更する前にonRecordUpdate(レコード)関数を実行する必要があります。

@nilsによれば、ページが更新されて状態が消去されるため、メモリリークは発生しません。

関連する問題