javascript – 为什么这种解构不起作用?

我正在创建一个像这样的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.

上一篇:javascript – Angular 2如何在登录浏览器控制台之前处理404?


下一篇:Rxjava操作符compose