Promise<T> Class
This page contains documentation for advanced Fuse features, so we have
taken the liberty to tick the "Show advanced things" checkbox above for
you in advance to be able to provide you with some additional information.
Uno-side Promise based on the A+ standard.
This can be used in multiple ways:
Statically
You can use the Run function to wrap whatever argument-less function you want as a Promise, like this:
bool doStuff()
{
//stuff is done
success = doOtherStuff();
return success;
}
void onSuccess(bool value)
{
//Success!
}
void onFail(Exception e)
{
// Oh no!
}
public void DoSomeFancyStuff()
{
var promise = Promise.Run(doStuff).Then(onSuccess, onFail);
}
Make your own promises
You can also extend Promise and handle it yourself. Simply call Resolve or Reject once you have a result or a failure. The Native Facebook login example is a good example of this being done in practice.
Notice that Resolve and Reject are public, so you can also theoretically both resolve and reject promises from elsewhere.
Making Promises accessible from JavaScript modules
A Promise can be wrapped in a NativePromise and fed to a NativeModule through AddMember. You can read more about creating custom js modules, and how to populate them with functions and promises, here
Location
- Namespace
- Uno.Threading
- Package
- Uno.Threading 2.9.2