🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51919

Re: Promise i oczekiwanie na wynik

#51919
From: Borys Pogoreło
Date: Wed, 08 Aug 2018 20:29
24 lines
1773 bytes
Dnia Tue, 7 Aug 2018 16:35:54 +0200, Roman Tyczka napisał(a):

> 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ł.

Nie wkleiłeś całego kodu, ale czy przypadkiem nie zwracasz zmiennej
"haszyk" od razu? Ona zostanie zmieniona dopiero gdy Promise się rozwiąże.

I generalnie Promise.race() nie do tego służy. To stosunkowo rzadko
potrzebne narzędzie, które czeka na wynik jednej z wielu promises. Niby
można by tego użyć w zaproponowany przez Ciebie sposób, ale jest to
kompletnie zbędne. Wystarczy się od razu odwołać do obiektu.

> Jak zmusić JS, żeby czekał aż asynchroniczne zadanie będzie wykonane?

Nie zmusisz. Musisz myśleć asynchronicznie - kod operujący na wyniku
funkcji haszującej musi poczekać na wynik Promise:

https://jsfiddle.net/fzLbqmng/

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Technical Details
Message-ID: <nu2wq6mg704y$.wuh3wxwx318r$.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.promontel.net.pl!not-for-mail
References: <1jv3988qj6pyf.dlg@tyczka.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.promontel.net.pl!not-for-mail
From: Borys Pogoreło <borys@pl.edu.leszno>
Newsgroups: pl.comp.lang.javascript
Subject: Re: Promise i oczekiwanie na wynik
Date: Wed, 8 Aug 2018 22:29:26 +0200
Organization: snafu
Lines: 24
Message-ID: <nu2wq6mg704y$.wuh3wxwx318r$.dlg@40tude.net>
References: <1jv3988qj6pyf.dlg@tyczka.com>
NNTP-Posting-Host: 46.134.31.84
Mime-Version: 1.0
X-Trace: thunar.promontel.net.pl 1533760104 7222 46.134.31.84 (8 Aug 2018 20:28:24 GMT)
X-Complaints-To: abuse@promontel.net.pl
NNTP-Posting-Date: Wed, 8 Aug 2018 20:28:24 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.14.1pl
X-fnord: obey.
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit