Roh*_*han 3 javascript observable rxjs
我正在创建一个像这样的observable:
return new Observable(sub => {
const {next, complete, error} = sub;
this.AuthHttp.get(`http://192.168.1.100:3000/api/users/${id}`)
.subscribe(res => {
let user = res.json();
next(user);
complete();
}, e => {
error(e.json());
});
})
Run Code Online (Sandbox Code Playgroud)
然而,当next()预期被召唤时,我的前端没有任何事情发生.如果我对代码进行微小的更改以便sub.next()调用,那么一切都按预期工作.这表明底层代码没有缺陷,只是我参考的方式next.
我之前看过这种与Observer类一起使用的解构形式(在线示例中),所以我在这里做错了什么?
因为next,error和complete方法是必须在对象实例上调用的对象方法.
当您使用解构来获取函数并稍后调用这些函数时,调用没有上下文.
由于这不起作用的原因,你无法做你尝试过的事情:
const { toString } = new Date();
console.log(toString());
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此问题.