Почему это разрушение не работает? - PullRequest
0 голосов
/ 26 июня 2018

Я создаю наблюдаемое так:

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 (в примере онлайн), так чтоя здесь не так делаю?

1 Ответ

0 голосов
/ 26 июня 2018

Поскольку методы next, error и complete являются объектными методами, которые должны вызываться для экземпляра объекта .

Когда вы используете деструктуризацию для получения функций иПозже вызовите эти функции, вызовы будут без контекста.

Вы не можете делать то, что пытались, по той же причине, по которой это не будет работать:

const { toString } = new Date();
console.log(toString());

Для получения дополнительной информации см. этот номер .

...