Fabric.js Document Engine

搜索文档

查找页面或章节

EN

每种失败都有一个稳定的 code,可以直接用来判断。

每种失败都是带稳定 code 的 DocumentEngineError。文档引擎错误码在 1.x 期间永远不会变,所以请按 code 判断,不要按消息文字判断。

import { isDocumentEngineError } from "fabricjs-document-engine";
 
try {
  await engine.load(id);
} catch (error) {
  if (isDocumentEngineError(error) && error.code === "UNSAVED_CHANGES") {
    await engine.save();
    await engine.load(id);
  }
}

除了 code,错误还可能带有 issues、unknownTypes、missingAssets、missingFonts、problems、migrationFrom、retryable 和 cause。

全部文档引擎错误码

错误码触发时机
INVALID_DOCUMENT文档结构不对,或导入的文本不是 JSON
UNSAFE_DOCUMENT不安全的图片地址、对象太多或嵌套太深
UNSUPPORTED_SCHEMA由这个包更新的大版本写入
UNKNOWN_OBJECT_TYPE自定义类没有注册
INVALID_CUSTOM_OBJECT注册的类没有静态 type,或不是 Fabric.js 类
MIGRATION_FAILED旧文档无法升级
LOAD_ABORTED更新的加载或 destroy 中止了这次加载
LOAD_FAILEDFabric.js 或存储加载失败
MISSING_ASSETS有图片无法加载
MISSING_FONTS字体不可用,且开启了 requireFonts
ASSET_UPLOAD_FAILEDupload 处理函数失败
UNSAVED_CHANGES打开另一份文档会丢掉未保存的改动
STORAGE_MISSING没有存储却调用了 load、save 或自动保存
SAVE_FAILED重试后存储仍然拒绝
SAVE_CONFLICT另一个标签页或设备先保存了
SAVE_CANCELLED因为打开了另一份文档或引擎被销毁,保存被丢弃
DOCUMENT_NOT_FOUND内置适配器里没有这份文档
HISTORY_FAILED撤销或重做无法重建对象
RECOVERY_MISSING没有配置恢复
RECOVERY_NOT_FOUND没有恢复副本
RECOVERY_FAILED无法写入恢复副本
VERSIONS_UNSUPPORTED存储没有版本相关的方法
VERSION_NOT_FOUND没有这个版本
VERSION_FAILED自动版本失败
INVALID_EXPORT_OPTIONS导出配置无效
EXPORT_BLOCKED有图片或字体会让导出出错,见 error.problems
EXPORT_ABORTED导出被取消
EXPORT_FAILED渲染失败
ENGINE_DESTROYED在 destroy() 之后仍使用了引擎

需要界面处理的几个

大多数文档引擎错误码记下日志就可以了。下面这几个需要用户做决定,请给它们一个对话框:SAVE_CONFLICT(保存冲突)、MISSING_ASSETS(图片和字体)和 UNSAVED_CHANGES。完整的处理代码见上线清单。

文档引擎错误码 | Fabric.js Document Engine