@ actuallab/ core (中文(简体) )
每个人共享的核心原始物 实际Lab。 组合 类型脚本
软件包 - Result<T>, (中文(简体) ), AsyncContext, (中文(简体) ), AsyncLock, (中文(简体) ), PromiseSource、事件、重试政策,以及
取消帮助者。 它是部分的 TypeScript 对应版本 ActualLab.Core 在.NET中,以及它
已经 零运行时间依赖关系。 。 。 .
您很少直接安装 : @actuallab/rpc, (中文(简体) ), @actuallab/fusion, (中文(简体) ), @actuallab/fusion-rpc,以及
@actuallab/fusion-react 都取决于它。 在您想要其原始内容时明确安装
他们自己的.
安装
npm install @actuallab/core
无害环境管理首先采用CJS制;船舶自用 .d.ts。 。 。 .
里面的东西
| API 密码 | 说明 |
|---|---|
Result<T>, (中文(简体) ), result, (中文(简体) ), errorResult, (中文(简体) ), resultFrom, (中文(简体) ), resultFromAsync | 易变值或易变相容器(.NET) Result<T>(中文(简体) ) |
PromiseSource<T>, (中文(简体) ), PromiseSourceWithTimeout<T> | 外部解决的承诺(.NET) TaskCompletionSource<T>(中文(简体) ) |
AsyncContext, (中文(简体) ), AsyncContextKey, (中文(简体) ), abortSignalKey | AsyncLocal<T>- 如键入上下文; 由 AsyncLocalStorage 第20.16节 |
AsyncLock, (中文(简体) ), AsyncSignal | 基于承诺的相互排斥和示意 |
EventHandlerSet<T> | 键入多播的 pub/ sub 与 whenNext() |
isCancellation, (中文(简体) ), cancellationError, (中文(简体) ), delayAsync, (中文(简体) ), abortPromise, (中文(简体) ), awaitWithCleanup | AbortSignal-基于取消,带有.NET"取消不是失败"的语义学 |
RetryDelaySeq, (中文(简体) ), RetryDelayer, (中文(简体) ), retry | 指标后退重试政策 |
throttle, (中文(简体) ), debounce, (中文(简体) ), serialize | 更高顺序的同步运算符 |
RingBuffer, (中文(简体) ), DisposableBag | 小型收藏/终生助手 |
Log, (中文(简体) ), LogLevel, (中文(简体) ), initLogging, (中文(简体) ), LogLevelController | 所有 Fusion TS 包所用的范围记录 |
实例
import { Result, result, errorResult, resultFrom } from '@actuallab/core';
const ok = result(42);
ok.hasValue; // true
ok.value; // 42
ok.valueOrUndefined; // 42 — never throws
const err = errorResult<number>(new Error('fail'));
err.hasError; // true
err.value; // throws Error("fail")
resultFrom(() => JSON.parse('{}')); // Result<any>, exception captured
import { AsyncContext, AsyncContextKey } from '@actuallab/core';
const userKey = new AsyncContextKey<string>('user', 'anonymous');
const ctx = AsyncContext.empty.with(userKey, 'Alice');
ctx.run(() => AsyncContext.current!.get(userKey)); // "Alice"
import { AsyncLock, delayAsync, RetryDelaySeq } from '@actuallab/core';
const lock = new AsyncLock();
await lock.run(async () => { /* critical section */ });
await delayAsync(1000, abortSignal); // abortable delay
RetryDelaySeq.exp(1000, 30000); // 1s, 1.4s, 2s, 2.8s, … (×√2, ±10% spread), capped at 30s
文档
@actuallab/core参考文献 ——完整的API表格和语义- 类型脚本端口概览 - 建筑,
AsyncContext规则,.NET 差异 - 组合文档
许可证
麻省理工学院——见 自由主义。 。 。 .