Redirect 如何在fetch()内的承诺内执行重定向

Redirect 如何在fetch()内的承诺内执行重定向,redirect,ecmascript-6,promise,fetch,es6-promise,Redirect,Ecmascript 6,Promise,Fetch,Es6 Promise,这是在承诺中重定向的正确方式吗?这会造成任何不良影响吗?可能的内存泄漏 .then(function (response ){ if( response.redirected){ location.href = response.url; } return response.json(); }) .then(function (record) {

这是在承诺中重定向的正确方式吗?这会造成任何不良影响吗?可能的内存泄漏

      .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所说,您不会得到任何内存泄漏,因为它将刷新页面,并且状态将被清除

基本上,它不会运行位置更改后的代码。有时,如果浏览器速度变慢,它可以工作,但理论上它不应该工作。因此,我认为您应该在位置更改之前运行onRecordUpdate(record)函数,以避免任何无声错误


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

它不会导致内存泄漏,因为您正在加载一个新页面,该页面将丢弃当前页面状态。我看不出这与在承诺内或在其他情况下有什么不同,在重定向点之外,这是否会破坏链并解析上一个现有的承诺?它不会导致内存泄漏,因为您正在加载一个新页面,该页面将丢弃当前页面状态。我看不出在承诺内部与其他内部之间有什么不同。在重定向点处,这是否会破坏链并解析上一个现有的承诺?
    .then(function (response ){
      if( response.redirected){
        location.href = response.url;
      }
      return response.json();
    })
    .then(function (record) {
      console.log("record update:",record);
      onRecordUpdate(record);
    })