如何在fetch()内的Promise内执行重定向

时间:2017-06-08 06:43:32

标签: redirect ecmascript-6 promise fetch es6-promise

这是在Promise中重定向的正确方法吗?这会导致任何不良影响吗?可能的内存泄漏?

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

1 个答案:

答案 0 :(得分: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(record)函数以避免任何无提示错误。

正如@nils所说,你不会得到任何内存泄漏,因为它会刷新页面并清理状态。