#promise #future #async

pinky-swear

未来和异步/await兼容的承诺

37个稳定版本 (6个主要版本)

6.2.0 2023年11月14日
6.1.0 2022年1月30日
5.2.1 2022年1月4日
5.2.0 2021年12月30日
0.4.2 2019年10月31日

#126 in 异步

Download history 26066/week @ 2024-04-22 24377/week @ 2024-04-29 24597/week @ 2024-05-06 26182/week @ 2024-05-13 27387/week @ 2024-05-20 24705/week @ 2024-05-27 30835/week @ 2024-06-03 28338/week @ 2024-06-10 25184/week @ 2024-06-17 29178/week @ 2024-06-24 26039/week @ 2024-07-01 31588/week @ 2024-07-08 33665/week @ 2024-07-15 34522/week @ 2024-07-22 35245/week @ 2024-07-29 37247/week @ 2024-08-05

每月141,755次下载
用于 78 个crate (直接使用3个)

BSD-2-Clause

11KB
192

与std::future和async/await兼容的简单承诺库

API Docs Build status Downloads

示例

创建一个承诺并在另一个线程中计算结果的同时等待结果

use pinky_swear::{Pinky, PinkySwear};
use std::{thread, time::Duration};

fn compute(pinky: Pinky<Result<u32, ()>>) {
    thread::sleep(Duration::from_millis(1000));
    pinky.swear(Ok(42));
}

fn main() {
    let (promise, pinky) = PinkySwear::new();
    thread::spawn(move || {
        compute(pinky);
    });
    assert_eq!(promise.wait(), Ok(42));
}

lib.rs:

与std::future和async/await兼容的简单承诺库

示例

创建一个承诺并在另一个线程中计算结果的同时等待结果

use pinky_swear::{Pinky, PinkySwear};
use std::{thread, time::Duration};

fn compute(pinky: Pinky<Result<u32, ()>>) {
    thread::sleep(Duration::from_millis(1000));
    pinky.swear(Ok(42));
}

fn main() {
    let (promise, pinky) = PinkySwear::new();
    thread::spawn(move || {
        compute(pinky);
    });
    assert_eq!(promise.wait(), Ok(42));
}

依赖

~1–6MB
~21K SLoC