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);
})