gpt4 book ai didi

javascript - Angular - Map/Catch 返回相同的值但收到错误

转载 作者:行者123 更新时间:2023-11-30 20:28:56 24 4
gpt4 key购买 nike

基本上,我有以下代码:

let currentTime:number = (new Date()).getTime();
return this.authenticationService.login(credential).map(data => {
const token = data.token;
const id = data.id;
sessionStorage.setItem('userData', JSON.stringify({currentTime, token, id}));
return JSON.parse(sessionStorage.getItem('userData'));
}).catch(error => {
sessionStorage.setItem('userData', JSON.stringify({currentTime, error}));
return JSON.parse(sessionStorage.getItem('userData'));
});

如您所见,mapcatch 方法返回相同的代码。当我使用 map 方法到达 return 语句时,一切都按预期运行。但是,当我到达 catch 部分的 return 时,Angular 说:core.js:1598 ERROR TypeError: 你在需要流的地方提供了一个无效对象。您可以提供 Observable、Promise、Array 或 Iterable。。为什么会这样?

最佳答案

按照错误信息的建议,你应该返回一个 promise ,或者一个可观察的,...

}).catch(error => {
sessionStorage.setItem('userData', JSON.stringify({currentTime, error}));
return Observable.of(JSON.parse(sessionStorage.getItem('userData')));
});

关于javascript - Angular - Map/Catch 返回相同的值但收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50575049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com