Ministerstvo průmyslu a obchodu propaguje Microsoft. Ten ve spolupráci s Ministerstvem průmyslu a obchodu spouští AI National Skilling Plan v ČR. "Iniciativa Microsoftu přináší konkrétní a praktickou podporu právě tam, kde ji nejvíc potřebujeme – do škol, firem i veřejné správy.", říká ministr průmyslu a obchodu Lukáš Vlček.
Jste český ISP? Vyplněním krátkého dotazníku můžete pomoci nasměrovat vývoj nové generace routerů Turris Omnia [𝕏].
Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.
Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 2. snapshot Ubuntu 25.10 (Questing Quokka).
Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.
Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.
Mozilla oficiálně ukončila svůj již několik let mrtvý projekt DeepSpeech pro převod řeči na text.
Krátce po oficiálním oznámení forku X.Org Xserveru s názvem XLibre Xserver byl ve Fedoře předložen návrh, aby byl X.Org Xserver nahrazen tímto XLibre Xserverem. Po krátké ale intenzivní diskusi byl návrh stažen.
class Foo{ test(){ return 'bar'; } show(){ setTimeout ( function (){ return this.test(); },100); } } var foo = new Foo(); var a = foo.show(); console.log(a);
Řešení dotazu:
Můžeš ji volat a voláš ji. Jenom ta funkce vůbec nic nedělá. Celý ten kód je minimálně dvojitý arcinesmysl.
Zaprvé, ta inline funkce, kterou plánuješ tím časovačem (za 100 milisekund), nemá vůbec žádný efekt, zavolá test()
, ten vrátí 'bar'
, inline funkce pak vrátí výsledek toho test()
u, tedy zase 'bar'
, ale ten nikoho nezajímá, takže se ztratí a zapomene.
Zadruhé, to, co se tam snažíš vypsat pomocí console.log()
, nemá žádnou spojitost s návratovou hodnotou funkce test()
(jestli o tohle šlo). V proměnné a
je návratová hodnota funkce show()
, která je undefined
, protože ve funkci show()
není žádný return
statement. Tady si můžeš přečíst, jak správně vracet hodnoty z asynchronních volání a setTimeout()
.
Zatřetí, v té inline funkci se nedá přistupovat k implicitnímu parametru this
takhle přímo, protože taková inline funkce je (velmi zjednodušeně řečeno) buďto jiný objekt nebo úplně mimo kontext jakéhokoliv objektu, tj. proměnnou this
nemá vůbec definovanou. Tohle je taky známá věc, stačí jenom hledat.
class Foo { constructor(message) { this.message = message; } show() { var _this = this; setTimeout (function() { console.log(_this.message); }, 1000); } } var foo = new Foo('blahblah'); foo.show(); console.log('Show scheduled!');
Oprava: Ta metoda test()
původně nebyla volaná vůbec (právě kvůli problému č. 3 s použitím this
). To mi nějak uniklo.
setTimeout ( function (){ this.test(); },100);
Tu inline funkci si lze představit jako metodu v oddělenén samostatném objektu, tj. i kdyby tam this
byl definovaný, ukazoval by na jinou instanci jiného typu.
Nechápu, co míníš formulací „přímo na this
“. Když si uložíš var _this = this
, pak _this
ukazuje přímo na ten původní objekt, na který ukazoval this
. Je to reference. Jde jen o formalitu s uložením té reference v kontextu, který bude později dostupný dynamické inline funkci; nic přímého / nepřímého bych za tím nehledal.
Dobry den, pouzijte metodu bind:
setTimeout(function () { this.test(); }.bind(this), 100);
Aby Vas ukazkovy kod spravne fungoval, je nutne pouzit promise:
class Foo { test() { return 'bar'; } show() { return new Promise(function(resolve, reject) { setTimeout (function () { resolve(this.test()); }.bind(this), 100); }.bind(this)); } }; var foo = new Foo(); var a = foo.show(); a.then(console.log);
Tiskni
Sdílej: