eventy ~nextgen
Asynchronous programming system
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
Eventy
What I want
// Create en event engine (it logs promises)
Eventy eventy = new Eventy();
/**
* Create a new promise who's job is to run the
* provided lambda `(x) => (x*2)`
*/
Promise myPromise = eventy.new((x) => (x*2));
/**
* Chain a promise to this one such that upon completion of
* `myPromise` then `promise2` will run and `myPromise` will only
* be considered completely done once everything from its chain forward is
*
* NOTE: That a promise is only completed then once its chain forwards
* is completed
*/
Promise promise2 = eventy.new((x)=>());
myPromise.then(promise2);
/**
* Now start the promise and await its completion,
* this will basically sleep the calling thread
* till it awakes. It returns a result
*
* Internally this calls `this.execute()` and
* then `await()` on the calling thread (as
* described above)
*/
Result result = myPromise.await();
/**
* One can also just start a promise without awaiting it,
* however the result will have to be grabbed manually later
*/
myPromise.execute();
/**
* The status of a promise can be checked
*
* TODO: There should be a version
*/
if(myPromise.state == State.Finished)
{
}
/**
* You can call await (it won't start it again)
* but will rather sleep like await first call.
*
* If it has finished then result is returned.
* It can be called over and over and the result
* will just be returned.
*/
Result result = myPromise.await();
- ~nextgen released a year ago
- deavmi/eventy
- deavmi.assigned.network/projects/eventy
- LGPL v3
- Copyright © 2020, Tristan B. Velloza Kildaire
- Authors:
- Dependencies:
- libsnooze
- Versions:
-
0.4.3 2022-Nov-28 0.4.1 2022-Nov-28 0.4.0 2022-Nov-28 0.3.3 2022-Nov-26 0.3.2 2022-Nov-26 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
286 downloads total
-
- Score:
- 0.8
- Short URL:
- eventy.dub.pm