在下面的代码中,用户在订阅内的代码之前返回。您知道订阅执行后如何返回用户吗? 感谢您的帮助。
map(user => {
console.log('!!user is::: ', !!user);
this.httpService.makePostRequest('login', {}, true).subscribe((response: any ) => {
if (!response.success) {
return null;
} else {
user.token = response.token;
this.globals.params.user.token = response.token;
console.log(user.token);
}
});
return !!user;
})
最佳答案
首先,不要订阅可观察对象。首先返回您的用户,因为您的订阅函数需要时间来响应(这是一个异步操作)。 如果您想在返回用户之前执行您的发布请求,您可以执行以下操作:
mergeMap(user => {
console.log('!!user is::: ', !!user);
return this.httpService.makePostRequest('login', {}, true).pipe(
map((response: any ) => {
if (!response.success) {
return null;
} else {
user.token = response.token;
this.globals.params.user.token = response.token;
console.log(user.token);
}
return user;
})
);
})
关于javascript - RxJS 映射在执行订阅之前返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59027647/