Angular 2+ Observables и Javascript синтаксис

1

Я новичок в Angular и Javascript, поэтому мне было интересно, что означает следующий синтаксис:

const simpleObservable = new Observable((observer) => {    
    // observable execution
    observer.next("bla bla bla")
    observer.complete()
})

Почему аргумент " (observer) " в скобках передан конструктору Observable и что такое синтаксис стрелки => {...}? где я могу прочитать об этих специальных конструкциях в синтаксисе javascript?

Показать ещё 1 комментарий
Теги:
angular

2 ответа

1

что такое синтаксис стрелки => {...}?

Функции стрелок - это функция, введенная в версии javascript версии 2015 года. Они короче писать и в отличие от обычных функций, которые они принимают их значение this из контекста, в котором они объявлены, а не контекст, в котором они вызываются. (хотя в вашем конкретном случае this не используется, делая это различие несущественным)

Эквивалентом, использующим функции старого стиля, будет:

const simpleObservable = new Observable(function (observer) {
  // observable execution
  observer.next("bla bla bla")
  observer.complete()
});

Почему аргумент "(наблюдатель)" в скобках передан конструктору Observable

Чтобы построить наблюдаемое с нуля, вы передаете функцию, которая описывает, как делать то, что вы хотите сделать. Когда кто-то звонит .subscribe на наблюдаемую, ваша функция вызывается, и вы можете делать все, что вам нужно, асинхронный материал. И когда вам нужно что-то сообщить, вы можете использовать .next .complete .next, .complete и .error для вывода результатов.

1

Синтаксис () => {} обозначает лямбда-выражение. В частности, выражение лямбда TypeScript, в котором this указатель установлен в фактический класс (вместо лямбда-invoker).

JavaScript lambdas (function() {}) следует избегать, поскольку они не поддерживают целостность this.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню