Kliknij gdziekolwiek na stronie dwa razy. Co sekundę będą wyświetlane koordynaty poszczególnego kliknięcia. W podanej kolejności: pierwsze kliknięcie, drugie itd.
W pierwszym parametrze informujemy splice, w którym miejscu chcemy dodać nowe elementy. W drugim podajemy 0, ponieważ nie chcemy nic kasować z tablicy. I w końcu w ostatnim parametrze podajemy listę elementów, które chcemy dodać.
splicemodyfikuje tablicę, na której została ta funkcja wywołana.
W wersji dla TypeScript, Jest będzie szukać plików z rozszerzeniem: .spec.ts.
Mamy skonfigurowane środowisko. Czas sprawdzić, czy to działa.
Uruchomienie testów
Konfiguracja w package.json
Dodajmy jeszcze takie wpisy do pliku package.json w sekcji: scripts:
{
"scripts": {
"test": "jest --config ./jest.config.json",
"test:watch": "npm run test -- --watch"
},
}
Pierwszy skrypt uruchomi nam raz testy, bazując na naszym pliku konfiguracyjnym. Drugi skrypt zrobi to samo, ale dodatkowo będzie nasłuchiwać na ewentualne zmiany.
Uruchomienie testu
Stwórz plik z rozszerzeniem: .spec.js lub .spec.ts i dodaj zawartość do pliku:
Operator switchMap służy do pobrania danych ze źródła typu Observable.
To, co charakteryzuje switchMap, to możliwość anulowania emisji danych z poprzedniego wywołania. W momencie, gdy nasze źródło wysyła nowe dane poprzednia subskrypcja jest anulowana - pod warunkiem że nie zakończyła się w chwili emisji nowych danych.
W przeciwieństwie do operatora mergeMapswitchMap pozwala na subskrypcję, w danej chwili tylko jednego źródła danych.
Za każdym razem, gdy wyślemy dane z podanego źródła poprzednia emisja, zostanie anulowana.
Jeśli zależy Ci na:
Tylko jednej subskrypcji (w danym momencie) z obiektu typu Observable
Na możliwości anulowania poprzedniej emisji danych
Po kliknięciu przyciskiem myszy w stronę startuje licznik co sekundę, emitując nowe dane (interval$). Drugie kliknięcie powoduje anulowanie poprzedniej subskrypcji i start nowej.
Kliknij drugi raz odpowiednio szybko, zanim przyjdzie odpowiedź z pierwszego żądania — zostanie wysłane nowe zapytanie + anulowane zostanie poprzednie.