Eloquent JavaScript



Download 2,16 Mb.
Pdf ko'rish
bet107/165
Sana02.07.2022
Hajmi2,16 Mb.
#731657
1   ...   103   104   105   106   107   108   109   110   ...   165
Bog'liq
Eloquent JavaScript

Collections of promises
Each nest computer keeps an array of other nests within transmission distance
in its
neighbors
property. To check which of those are currently reachable,
you could write a function that tries to send a
"ping"
request (a request that
simply asks for a response) to each of them and see which ones come back.
When working with collections of promises running at the same time, the
Promise.all
function can be useful. It returns a promise that waits for all of
the promises in the array to resolve and then resolves to an array of the values
that these promises produced (in the same order as the original array). If any
promise is rejected, the result of
Promise.all
is itself rejected.
requestType("ping", () => "pong");
function availableNeighbors(nest) {
let requests = nest.neighbors.map(neighbor => {
return request(nest, neighbor, "ping")
.then(() => true, () => false);
});
return Promise.all(requests).then(result => {
return nest.neighbors.filter((_, i) => result[i]);
});
196


}
When a neighbor isn’t available, we don’t want the entire combined promise
to fail since then we still wouldn’t know anything. So the function that is
mapped over the set of neighbors to turn them into request promises attaches
handlers that make successful requests produce
true
and rejected ones produce
false
.
In the handler for the combined promise,
filter
is used to remove those
elements from the
neighbors
array whose corresponding value is false. This
makes use of the fact that
filter
passes the array index of the current element
as a second argument to its filtering function (
map
,
some
, and similar higher-
order array methods do the same).

Download 2,16 Mb.

Do'stlaringiz bilan baham:
1   ...   103   104   105   106   107   108   109   110   ...   165




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish