我正在创建一个像这样的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());
});
})
然而,当预期调用next()时,我的前端没有任何事情发生.如果我对代码进行了一些小改动,以便调用sub.next(),那么一切都按预期工作.这表明底层代码没有缺陷,只是我对下一个引用的方式.
我之前看过这种与Observer类一起使用的解构形式(在线示例中),所以我在这里做错了什么?
解决方法:
因为下一个,错误和完整方法是必须在对象实例上调用的对象方法.
当您使用解构来获取函数并稍后调用这些函数时,调用没有上下文.
由于这不起作用的原因,你无法做你尝试过的事情:
const { toString } = new Date();
console.log(toString());
有关更多信息,请参阅this issue.