-
Data: 2009-01-10 18:28:40
Temat: Re: Kolejkowanie w JavaScript
Od: porneL <n...@p...net> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sat, 10 Jan 2009 17:46:31 -0000, Krzysztof Antczak <k...@l...pl> wrote:
>> funkcja[n]_czeka=true;
>> settimeout(....)...
>> ...
>> funkcja[n]_czeka=false;
>
> Mniej więcej tak też próbowałem, chociaż wcześniej nie znałem sposobu
> przeiterowania po zdefiniowanych funkcjach w silniku JS.
Nie da się. W JS funkcje są zwykłymi obiektami, które mogą być tworzone w każdej
chwili i nawet nie muszą być przypisane do żadnego obiektu. Iterowanie po wszystkich
funkcjach w JS to jak interowanie po wszystkich intach w C.
np. queue.add(function(){}) // kompletnie anonimowa - nie znajdziesz jej w window ani
innym obiekcie (nie licząc arguments w wywołaniu add())
queue.add((function(){ // dostaniesz anonimową funkcję odwołującą się do
zmiennej lokalnej - nie masz szans na inspekcję f().
var f = function(){}
return function(){ f() }
})())
var s;
queue.add(function(){s()}) // nie dowiesz się, że funkcja używa setTimeout
s = window.setTimeout
Z drugiej strony, jeśli nie pasi ci asynchroniczność setTimeout, to nie musisz
zakrzywiać całej czasoprzestrzeni. Możesz zmienić te funkcje:
window.setTimeout = function( f, timeout ) { f() }
Powyższa implementacja jest zbyt uproszczona - brak kompatybilności ze starą
składnią, dodatkowymi parametrami i obsługi clearTimeout(), ale to wszystko jest
wykonalne. Zobacz jak JSowe frameworki do Unit Testów to robią.
--
http://sblam.com
this.author = new Geek("porneL");
Następne wpisy z tego wątku
- 10.01.09 19:17 Krzysztof Antczak
- 10.01.09 19:50 Rafal\(sxat\)
- 11.01.09 15:29 emil
- 11.01.09 16:18 Krzysztof Antczak
- 12.01.09 03:00 Rafal\(sxat\)
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Czyli jednak elektryki są TANIE i powszechnie dostępne dla obywateli
- 2025-05-03 Elektryki do Morskiego Oka do utylizacji
- 2025-05-03 Crash testy na publicznej drodze - 4 BMW zderzone
- 2025-05-03 pojebane Google
- 2025-05-03 Brednie w wiki - hasło Dehomag
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-05-03 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-03 Warszawa => Frontend Developer (Angular13+) <=
- 2025-05-02 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-02 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-02 Polska => Senior Key Account Manager <=
- 2025-05-02 Warszawa => Senior Programmer C <=
- 2025-05-02 Gdańsk => Team Lead Data Engineer (Snowflake) <=