跳到主要内容

WorkspaceFlushError

Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:127

flush() 因部分草稿无法结构化克隆而失败。

Remarks​

RWS-FRESH-02:workspace 草稿存的是「用户正在编辑的实体」,字段类型由业务定义, 插件对它没有约束力 —— 函数 / DOM 节点 / Proxy / class 实例都会让 structuredClone 抛错。

这类失败不影响同批其他草稿:克隆预检发生在事务之外,坏记录进不了事务, 其余草稿照常落盘。但调用方必须知道是哪一条,否则唯一的补救手段 RxDBPluginWorkspace.discard 无从下手 —— 旧实现只 reject 出一个不带 key 的 DataCloneError,调用方除了清空整个工作区别无办法。

处置方式二选一:把 cacheIds 对应实体上的字段改成可克隆的值后重试, 或对这些 cacheId 调用 discard() 丢弃该草稿。

Extends​

  • Error

Constructors​

Constructor​

new WorkspaceFlushError(cacheIds, cause): WorkspaceFlushError;

Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:135

Parameters​

ParameterTypeDescription
cacheIdsreadonly `${string}:${string}:${string}-${string}-${string}-${string}-${string}`[]未能落盘的草稿主键
causeunknown首个结构化克隆失败原因

Returns​

WorkspaceFlushError

Overrides​

Error.constructor

Properties​

cacheIds​

readonly cacheIds: readonly `${string}:${string}:${string}-${string}-${string}-${string}-${string}`[];

Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:129

未能落盘的草稿 —— 同批其余草稿已成功写入。


cause?​

optional cause?: unknown;

Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es2022.error.d.ts:24

Inherited from​

Error.cause

message​

message: string;

Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1075

Inherited from​

Error.message

name​

name: string;

Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1074

Inherited from​

Error.name

stack?​

optional stack?: string;

Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from​

Error.stack

stackTraceLimit​

static stackTraceLimit: number;

Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:67

The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.

If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

Inherited from​

Error.stackTraceLimit

Methods​

captureStackTrace()​

static captureStackTrace(targetObject, constructorOpt?): void;

Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:51

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

function a() {
b();
}

function b() {
c();
}

function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;

// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}

a();

Parameters​

ParameterType
targetObjectobject
constructorOpt?Function

Returns​

void

Inherited from​

Error.captureStackTrace

prepareStackTrace()​

static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:55

Parameters​

ParameterType
errError
stackTracesCallSite[]

Returns​

any

See​

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from​

Error.prepareStackTrace