Under the hood, executor spawn new thread at each time when Promise::new(executor)
invoked.
Documentation https://docs.rs/promise-rs
```rust extern crate promise; use promise::Promise;
fn main() {
let mut promise = Promise::new(|resolve, reject| {
// do something
let result: Option
promise .then(|value| { /* on fulfilled / None }, |reason| { / on rejected / None }) .catch(|reason| { / on rejected: */ None }); } ```
Best way to begin learning a new language is start write own library. As I came from front-end world, will create yet another Promise library for Rust.