Path: csiph.com!news.mixmin.net!news.unit0.net!news.nask.pl!news.nask.org.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Roman Tyczka Newsgroups: pl.comp.lang.javascript Subject: Promise i oczekiwanie na wynik Date: Tue, 7 Aug 2018 16:35:54 +0200 Organization: ATMAN - ATM S.A. Lines: 24 Sender: romek@tyczka.no.found Message-ID: <1jv3988qj6pyf.dlg@tyczka.com> NNTP-Posting-Host: ip-94-75-90-137.wave.com.pl Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Trace: node1.news.atman.pl 1533652554 20240 94.75.90.137 (7 Aug 2018 14:35:54 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Tue, 7 Aug 2018 14:35:54 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.84 Xref: csiph.com pl.comp.lang.javascript:3482 Witam, Moje boje z JS utknęły na tym, że liczenie haszy w bibliotece standardowej jest asynchroniczne i całość rozbija się o obiekt typu Promise zwracany z metody digest(). Czytam o tym nieszczęsnym Promise i nie ogarniam. Chciałbym poczekać aż w tle zostanie policzony czas, więc na końcu funkcji haszującej dopisuję: Promise.race([hash_promise]).then(function (value) { haszyk = value; }); return haszyk; spodziewając się, że race() będzie czekać, tymczasem race() przechodzi bez zatrzymania, mimo, że hash_promise nadal jest pending i do return trafia pusty string haszyk, bo go nikt nie wypełnił. Jak zmusić JS, żeby czekał aż asynchroniczne zadanie będzie wykonane? -- pozdrawiam Roman Tyczka