Jasmine. createSpyObj with properties

const veppUpdateServiceSpy = {
...jasmine.createSpyObj('VeppUpdateService', [ // <== spy object
  'notify$',                                   // <== properties    
  'lastNotify',
  'addSubscribeParam',
  'deleteSubscribeParam',
]),
notify$: from([
  {
    data: { id: 100 },
    main_table: IspTableName.SITE,
    type: NotifyTypes.CREATE,
  },
  {
    data: { id: 93 },
    main_table: IspTableName.SITE,
    type: NotifyTypes.UPDATE,
  },
  {
    data: { id: 93 },
    main_table: IspTableName.SITE,
    type: NotifyTypes.DELETE,
  },
]).pipe(
  // tslint:disable-next-line:no-magic-numbers
  delay(500)
),
} as jasmine.SpyObj<VeppUpdateService>;

Похожие записи

+function ($) { "use strict"; }(window.jQuery);

  • объявляется IIFE (немедленно выполняемая функция-выражение)
  • в функцию передаётся объект библиотеки jQuery, которая внутри будет доступна через переменную с именем $
  • включается «строгий режим»

Поисковый запрос с помощью RxJS

Показательная и востребованная задача. Получение набираемого запроса из поля ввода через полсекунды после того, как пользователь закончил ввод с показом лоадера.

HTML атрибуты и DOM свойства

  • Значение HTML атрибута указывает начальное значение;
  • Значение DOM свойства является текущим значением;
  • Атрибуты инициализируют DOM свойства.

RxJS. Delay from array

import { of, from } from 'rxjs'; 
import { map, concatMap, delay } from 'rxjs/operators';

from([2,4,6,8]).pipe(
  concatMap(item => of(item).pipe(delay(1000)))
).subscribe(console.log);