Jak mogę wyjść ze skryptu JavaScript, podobnie jak PHP exit
lub die
? Wiem, że to nie jest najlepsza praktyka programistyczna, ale muszę.
javascript
exit
die
Nir
źródło
źródło
return;
może wystarczyć w zależności od Twoich wymagań, działa jak die () bez parametrów.Odpowiedzi:
Odpowiednik JavaScript dla PHP
die
. BTW to po prostu dzwoniexit()
(dzięki splattne):źródło
Funkcje „wyjścia” zazwyczaj kończą działanie programu lub skryptu wraz z komunikatem o błędzie jako parametrem. Na przykład die (...) w php
Odpowiednikiem w JS jest zasygnalizowanie błędu słowem kluczowym throw w następujący sposób:
Możesz to łatwo przetestować:
źródło
Nawet w prostych programach bez uchwytów, zdarzeń itp., Najlepiej jest umieścić kod w funkcji „głównej”, nawet jeśli jest to jedyna procedura:
W ten sposób, gdy chcesz zatrzymać program, możesz użyć „powrotu”.
źródło
Jeśli nie obchodzi Cię, że to błąd, po prostu napisz:
To zatrzyma kontynuację twojego głównego (globalnego) kodu. Przydatne w niektórych aspektach debugowania / testowania.
źródło
window.fail
nie jest zdefiniowany w obecnych przeglądarkach.mikeyMouse;
- błąd zniknie. Jest szybki i brudny.Istnieje wiele sposobów na wyjście ze skryptu JS lub Node. Oto najważniejsze:
Jeśli jesteś w REPL (tj. Po uruchomieniu
node
w wierszu poleceń), możesz napisać,.exit
aby zakończyć.źródło
W moim przypadku użyłem
window.stop
API, które przypomina kliknięcie przycisku X w Twojej przeglądarce:źródło
Umieść
debugger;
słowo kluczowe w kodzie JavaScript, w którym chcesz zatrzymać wykonywanie. Następnie otwórz narzędzia programistyczne swojej ulubionej przeglądarki i ponownie załaduj stronę. Teraz powinno się automatycznie zatrzymać. Otwórz sekcję Źródła w swoich narzędziach:debugger;
słowo kluczowe jest podświetlone i masz możliwość wznowienia wykonywania skryptu.Mam nadzieję, że to pomoże.
Więcej informacji na:
https://developer.mozilla.org/de/docs/Tools/Debugger
http://www.w3schools.com/js/js_debugging.asp
źródło
Myślę, że odpowiedź na to pytanie została udzielona, kliknij tutaj, aby uzyskać więcej informacji. Poniżej znajduje się krótka odpowiedź, którą opublikowano.
Możesz także użyć przeglądarki, aby dodać punkty przerwania, każda przeglądarka jest podobna, sprawdź informacje poniżej dla swojej przeglądarki.
Informacje o punktach przerwania przeglądarki Chrome kliknij tutaj Informacje o
punktach przerwania przeglądarki Firefox kliknij tutaj
W przypadku informacji o punktach przerwania przeglądarki Explorer kliknij opcję Informacje o punktach przerwania przeglądarki
Safari kliknij tutaj
źródło
Jeśli szukasz sposobu na wymuszenie zakończenia wykonywania całego kodu JavaScript na stronie, nie jestem pewien, czy istnieje oficjalnie usankcjonowany sposób, aby to zrobić - wydaje się, że jest to coś, co może stanowić zagrożenie bezpieczeństwa (chociaż szczerze mówiąc, nie mogę sobie wyobrazić, jak by to było poza moją głową). Zwykle w JavaScript, gdy chcesz, aby kod przestał działać, po prostu
return
wykonujesz dowolną funkcję. (return
Instrukcja jest opcjonalna, jeśli jest ostatnią rzeczą w funkcji, a funkcja nie powinna zwracać wartości) Jeśli istnieje jakiś powód, dla którego zwrot nie jest wystarczająco dobry, prawdopodobnie powinieneś edytować więcej szczegółów w pytaniu, dlaczego myślisz potrzebujesz tego i być może ktoś zaoferuje alternatywne rozwiązanie.Należy zauważyć, że w praktyce większość interpreterów JavaScript w przeglądarkach po prostu przestaje uruchamiać bieżący skrypt, jeśli napotka błąd. Możesz więc zrobić coś takiego, jak uzyskanie dostępu do atrybutu nieustawionej zmiennej:
i prawdopodobnie przerwie skrypt. Ale nie powinieneś na to liczyć, ponieważ nie jest to wcale standardowe i naprawdę wydaje się okropną praktyką.
EDYCJA : OK, może to nie była taka dobra odpowiedź w świetle Ólafura. Chociaż
die()
funkcja, z którą się łączył, w zasadzie implementuje mój drugi akapit, tj. Po prostu zgłasza błąd.źródło
rzucać "";
Jest to nadużycie koncepcji, ale prawdopodobnie jedyna opcja. I tak, będziesz musiał zresetować wszystkie odbiorniki zdarzeń, tak jak wspomina zaakceptowana odpowiedź. Jeśli mam rację, potrzebowałbyś również jednego punktu wejścia.
A do tego: chcesz mieć stronę, która raportuje do ciebie e-mailem, gdy tylko się pojawi - możesz użyć do tego na przykład Raven / Sentry. Ale to oznacza, że produkujesz fałszywe alarmy. W takim przypadku musisz również zaktualizować domyślną procedurę obsługi, aby odfiltrować takie zdarzenia lub ustawić takie zdarzenia na ignoruj na pulpicie nawigacyjnym Sentry.
window.stop ();
To nie działa podczas ładowania strony. Zatrzymuje również dekodowanie strony. Więc tak naprawdę nie możesz go użyć, aby zaoferować użytkownikowi wariant swojej strony wolny od javascript.
debugger;
Zatrzymuje wykonywanie tylko przy otwartym debugerze. Działa świetnie, ale nie jest to element dostarczalny.
źródło
W JavaScript istnieje wiele sposobów, poniżej znajduje się kilka z nich
Metoda 1:
Metoda 2:
Metoda 3:
Metoda 4:
Metoda 5:
napisz swoją funkcję niestandardową użyj powyższej metody i zadzwoń tam, gdzie potrzebujesz
Uwaga: Jeśli chcesz po prostu wstrzymać wykonywanie kodu, możesz użyć
źródło
Ta mała funkcja jest bardzo bliska naśladowaniu wyjścia PHP (). Podobnie jak w przypadku innych rozwiązań, nie dodawaj niczego więcej.
źródło
Po prostu utwórz warunek BOOL, nie ma potrzeby stosowania tutaj skomplikowanego kodu.
Jeśli nawet raz zmienisz to na prawdę / lub wiele razy, obie dadzą ci jedną linię rozwiązania / nie wielokrotność - w zasadzie proste.
źródło
Jeśli użyjesz jakiejkolwiek niezdefiniowanej funkcji w skrypcie, skrypt zatrzyma się z powodu „Uncaught ReferenceError”. Próbowałem postępując zgodnie z kodem i wykonując pierwsze dwie linie.
Myślę, że to najlepszy sposób na zatrzymanie scenariusza. Jeśli istnieje inny sposób, to proszę o komentarz. Chcę też poznać inny najlepszy i prosty sposób. BTW, nie dostałem wyjścia ani nie umarłem wbudowanej funkcji w JavaScript, takiej jak PHP, do zakończenia skryptu. Jeśli ktoś wie, daj mi znać.
źródło
Jeśli chcesz po prostu zatrzymać wykonywanie dalszego kodu bez „zgłaszania” jakiegokolwiek błędu, możesz tymczasowo nadpisać,
window.onerror
jak pokazano nacross-exit
:źródło
Używam iobrokera i łatwo udało mi się zatrzymać skrypt za pomocą
źródło
W większości przypadków nie dotyczy, ale miałem wiele skryptów asynchronicznych uruchomionych w przeglądarce i jako hack to robię
zatrzymać wszystko.
źródło
Wiem, że to jest stare, ale jeśli chcesz mieć podobną
die()
funkcję PHP , możesz zrobić:Stosowanie:
Powyższy przykład wypisze tylko „Hello”.
źródło
używam tego fragmentu kodu, aby zatrzymać wykonywanie:
pojawi się błąd konsoli, ale to działa dobrze dla mnie.
źródło
Jest to przykład, że jeśli exist stan, a następnie zakończyć skrypt. Używam tego w moim javascript po stronie klienta SSE, jeśli
nie można przeanalizować bezpośrednio z analizy JSON ...
... w każdym razie ogólna idea jest taka:
spowoduje to zakończenie / śmierć skryptu javasript
źródło
używam instrukcji return zamiast throw, ponieważ throw powoduje błąd w konsoli. najlepszym sposobem jest sprawdzenie stanu
to po prostu zatrzymuje wykonywanie programu z tej linii, zamiast wyświetlać błędy w konsoli.
źródło
if (condition) { new new }
lubif (condition) { purpleMonkeyDishwasher(); }
.