Er parallel ForEach asynkron?
Er parallel ForEach asynkron?

Video: Er parallel ForEach asynkron?

Video: Er parallel ForEach asynkron?
Video: Asynchronous Behavior in Loops: forEach() vs for...of - JavaScript 2024, November
Anonim

Hele ideen bag Parallel . For hver () er, at du har et sæt tråde, og hver tråd behandler en del af samlingen. Som du har bemærket, virker dette ikke med asynkron - vent, hvor du ønsker at frigive tråden for varigheden af asynkron opkald. For hver (), som understøtter asynkron Opgave er godt.

Med hensyn til dette, hvordan venter du på, at parallel foreach afsluttes?

Du behøver ikke gøre noget særligt, Parallel . For hver () vil vente indtil alle dens forgrenede opgaver er komplet . Fra den kaldende tråd kan du behandle det som et enkelt synkront statement og for eksempel pakke det ind i en try/catch. Det behøver du ikke med Parallel.

På samme måde, er for hver asynkron? Det er ikke asynkron . Det blokerer. De, der først lærte et sprog som Java, C eller Python, før de prøver JS, vil blive forvirrede, når de forsøger at sætte en vilkårlig forsinkelse eller et API-kald i deres loop body.

Udover dette, hvordan fortsætter du parallelt for hver?

Når du konverterede din loop til en kompatibel definition for Parallel . For hver logik, du endte med at gøre udsagnsteksten til en lambda. Nå, det er en handling, der bliver kaldt af Parallel fungere. Så udskift Blive ved med return, og bryd med Stop() eller Break() sætninger.

Er opgave WhenAll parallel?

Anvendelsen af NårAlle returnerer en enkelt opgave det er ikke færdigt før hver opgave i samlingen er afsluttet. Det opgaver ser ud til at løbe ind parallel , men der oprettes ingen yderligere tråde. Det opgaver kan gennemføres i enhver rækkefølge.

Anbefalede: