ExtSecureChat.Future
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package ExtSecureChat.Future --version 1.0.0
NuGet\Install-Package ExtSecureChat.Future -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ExtSecureChat.Future" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ExtSecureChat.Future --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ExtSecureChat.Future, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ExtSecureChat.Future as a Cake Addin
#addin nuget:?package=ExtSecureChat.Future&version=1.0.0
// Install ExtSecureChat.Future as a Cake Tool
#tool nuget:?package=ExtSecureChat.Future&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ExtSecureChat Future Library
This project is inspired by JavaScript Promises, checkout this page: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise It pretty much has the exact same syntax as Future.Promise
Usage:
using ExtSecureChat.Future
- Use one of the examples below
Examples:
Normal Promise (Resolve a value)
new Promise(() =>
{
return "test";
}).Then(res =>
{
Console.WriteLine(res); // Prints out: "test"
});
Normal Promise (Catch an exception)
new Promise(() =>
{
throw new Exception("exception");
}).Catch(err =>
{
Console.WriteLine(err.message); // Prints out: "exception"
});
Normal Promise (Combination)
new Promise(() =>
{
if (someDynamicVariable == true)
{
return "test"
}
else
{
throw new Exception("exception");
}
}).Then(res =>
{
Console.WriteLine(res); // Prints out: "test" | if someDynamicVariable == true
}).Catch(err =>
{
Console.WriteLine(err.message); // Prints out: "exception" | if someDynamicVariable == true
});
Executor Promise (Resolve a value)
new Promise(resolve =>
{
resolve("test");
}).Then(res =>
{
Console.WriteLine(res); // Prints out: "test"
});
Executor Promise (Catch an exception)
new Promise(reject =>
{
reject(new Exception("exception"));
}).Catch(err =>
{
Console.WriteLine(err.Message); // Prints out: "exception"
});
Note: Executor Promises will also catch exceptions thrown inside of the constructor, example:
new Promise(reject =>
{
throw new Exception("exception1")); // <-- This will be catched by the Catch function, which makes the reject function pretty useless though, so it's highly advised not to use it
reject(new Exception("exception2")); // Required for constructor
}).Catch(err =>
{
Console.WriteLine(err.Message); // Prints out: "exception1"
});
Executor Promise (Combination)
new Promise((resolve, reject) =>
{
if (someDynamicVariable == true)
{
resolve("test");
}
else
{
reject(new Exception("exception"));
}
}).Then(res =>
{
Console.WriteLine(res); // Prints out: "test" | if someDynamicVariable == true
}).Catch(err =>
{
Console.WriteLine(err.message); // Prints out: "exception" | if someDynamicVariable == true
});
Note to Executor Promises:
It is required to call all of the functions you are using in the constructor (e.g. resolve/reject). Otherwise an ambiguous error will be thrown!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.5.0)
- System.Dynamic.Runtime (>= 4.3.0)
- System.Threading.Thread (>= 4.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.