未处理的承诺拒绝:您提供了 'undefined' 预期流的位置。使用 SwitchMap 和一个 Observable 类型的函数
Unhandled Promise rejection: You provided 'undefined' where a stream was expected. Using SwitchMap and a function of type Observable
这是我第一次使用 rxjs 库中的 switchMap
。
我猜这个错误消息意味着它对我做事的方式不满意。
观察我的addemail
函数
addemail(form:NgForm){
this.googlerecaptchaservice.verifyinteraction('general_marketing_email_signup')
.subscribe(
(score: any)=>{
console.log(score);
const value = form.value.emailaddform;
this.addemailservice.add_email_to_general_marketing(value)
.subscribe(
(req: any)=>{
console.log('here is the test');
console.log(req);
}
);
});
}
更具体地说 googlerecaptchaservice.verifyinteraction
verifyinteraction(action): Observable<any>{
return this.recaptchaV3Service.execute(action).pipe(
switchMap((value: any) => {
const payload = {
token: value
};
this.http.post(
'http://127.0.0.1:8000/verify/recaptcha', payload
);
}));
}
我不明白为什么会收到错误消息。我做错了什么?
SwitchMap 需要一个 Observable,因此您需要 return this.http.post
SwitchMap
应该 return 一个 Observable,修改你的代码如下
verifyinteraction(action): Observable<any>{
return this.recaptchaV3Service.execute(action).pipe(
switchMap((value: any) => {
const payload = {
token: value
};
return this.http.post(
'http://127.0.0.1:8000/verify/recaptcha', payload
);
}));
}
这是我第一次使用 rxjs 库中的 switchMap
。
我猜这个错误消息意味着它对我做事的方式不满意。
观察我的addemail
函数
addemail(form:NgForm){
this.googlerecaptchaservice.verifyinteraction('general_marketing_email_signup')
.subscribe(
(score: any)=>{
console.log(score);
const value = form.value.emailaddform;
this.addemailservice.add_email_to_general_marketing(value)
.subscribe(
(req: any)=>{
console.log('here is the test');
console.log(req);
}
);
});
}
更具体地说 googlerecaptchaservice.verifyinteraction
verifyinteraction(action): Observable<any>{
return this.recaptchaV3Service.execute(action).pipe(
switchMap((value: any) => {
const payload = {
token: value
};
this.http.post(
'http://127.0.0.1:8000/verify/recaptcha', payload
);
}));
}
我不明白为什么会收到错误消息。我做错了什么?
SwitchMap 需要一个 Observable,因此您需要 return this.http.post
SwitchMap
应该 return 一个 Observable,修改你的代码如下
verifyinteraction(action): Observable<any>{
return this.recaptchaV3Service.execute(action).pipe(
switchMap((value: any) => {
const payload = {
token: value
};
return this.http.post(
'http://127.0.0.1:8000/verify/recaptcha', payload
);
}));
}