我正在创建一个像这样的可观察对象:
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()
,一切都会按预期进行。这表明底层代码没有缺陷,就像我引用 next
的方式一样。
我之前已经看到这种形式的解构与 Observer 类一起使用(在在线示例中),那么我在这里做错了什么?
最佳答案
因为 next
、error
和 complete
方法是对象方法,必须在对象实例上调用 .
当您使用解构来获取函数并稍后调用这些函数时,调用是没有上下文的。
你不能做你尝试过的事情,同样的原因是这行不通:
const { toString } = new Date();
console.log(toString());
有关详细信息,请参阅 this issue .
关于javascript - 为什么这种解构不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51035891/