The magical "async" keyword again [Node.js v20.0.0] (Was: timers and tasks testing framework [Node.js v20.0.0])

Liste des GroupesRevenir à l prolog 
Sujet : The magical "async" keyword again [Node.js v20.0.0] (Was: timers and tasks testing framework [Node.js v20.0.0])
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 23. Jun 2025, 12:10:10
Autres entêtes
Message-ID : <103bcmh$15ubr$1@solani.org>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.21
Again JavaScript shines since the keyword "async"
makes the difference. We have recently experienced
its benefit, since we could remove all new Promise()
calls in our code where we are juggling with tasks.
new Promise() is only needed for callbacks that
then call resolve() or reject(), but task can
just use await and try catch. Now without
the keyword its a traditional test case:
test('synchronous failing test', (t) => {
   // This test fails because it throws an exception.
   assert.strictEqual(1, 2);
});
With the keyword its a test case that
can test timers and tasks:
test('asynchronous passing test', async (t) => {
   // This test passes because the Promise returned by the async
   // function is settled and not rejected.
   assert.strictEqual(1, 1);
});
Mild Shock schrieb:
A flesh an bood cooperative multitasking Prolog system
is sometimes tricky to do. We were agonizing over the
last days how we could test our timers and tasks.
 Our existing framework doesn't work, since it neither
waits for a timer callback to be fired and to complete,
nor for a task to complete. But its seems its just an
instance of a Promise again.
 Turn the test case itself into a Promise, and wait for
it. In Prolo terms, the test case is a success when the
.then() port gets reached with SUCCESS, or its a failure
if the .then() port gets reached with FAILURE or if the
 the .catch() port gets reached. Interesting framework
that does just that:, whereby the use assert, to turn
FAILURE into an exception:
 Node.js v20.0.0 - The test runner is now stable.
https://nodejs.org/api/test.html#describe-and-it-aliases
 BTW: Quite inventive vocabulary...
  

Date Sujet#  Auteur
20 Jun 25 * Prolog missed the Web 2.0 Bandwagon13Mild Shock
20 Jun 25 +* IntelliJ just created Mellum, its open source (Was: Prolog missed the Web 2.0 Bandwagon)6Mild Shock
20 Jun 25 i`* Re: IntelliJ just created Mellum, its open source (Was: Prolog missed the Web 2.0 Bandwagon)5Mild Shock
23 Jun 25 i `* timers and tasks testing framework Node.js v20.0.0] (Was: IntelliJ just created Mellum, its open source)4Mild Shock
23 Jun 25 i  `* The magical "async" keyword again [Node.js v20.0.0] (Was: timers and tasks testing framework [Node.js v20.0.0])3Mild Shock
24 Jun 25 i   +- OpenAPI Specification (OAS) goes full Monty [AsyncAPI] (Was: The magical "async" keyword again [Node.js v20.0.0])1Mild Shock
24 Jun 25 i   `- OpenAPI Specification (OAS) goes full Monty [AsyncAPI] (Was: The magical "async" keyword again [Node.js v20.0.0])1Mild Shock
24 Jun 25 +* constant caching test case / Prolog orthodoxification (Was: Prolog missed the Web 2.0 Bandwagon)4Mild Shock
24 Jun 25 i`* Teachers have better quality than Nerds (Was: constant caching test case / Prolog orthodoxification)3Mild Shock
24 Jun 25 i `* ISO is loosing it because it gives in to Teachers (Was: Teachers have better quality than Nerds)2Mild Shock
24 Jun 25 i  `- Where APIs Meet AI: Building Tomorrow's Intelligent Ecosystems (Was: ISO is loosing it because it gives in to Teachers)1Mild Shock
25 Jun14:17 `* A library(pio) for the Web 2.0 (Was: Prolog missed the Web 2.0 Bandwagon)2Mild Shock
25 Jun14:19  `- Corr. (Was: A library(pio) for the Web 2.0)1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal