Home > LIB_Symbol > getDocumentSource
LIB_Symbol.getDocumentSource() method
此 API 当前处于 BETA 预览状态,希望得到开发者的反馈。它的任何功能都可能在接下来的开发进程中被修改,请不要将它用于任何正式环境。
获取符号的文档源码
签名
typescript
function getDocumentSource(symbolUuid: string, libraryUuid?: string): Promise<string | undefined>;1
参数名
参数 | 类型 | 描述 |
|---|---|---|
symbolUuid | string | 符号 UUID |
libraryUuid | string | (可选) 库 UUID,默认为系统库,可以使用 LIB_LibrariesList 内的接口获取 |
返回值
Promise<string | undefined>
符号的 3.0 文档源码(esym JSON 字符串),获取失败返回 undefined
备注
与 LIB_Symbol.updateDocumentSource() 对称的读取接口;返回 **3.0 格式**(esym)的符号源数据, 可直接用于组装原理图源数据(如 AI 生成 eprj3 工程)。
支持工程库 / 非工程库(系统库 / 个人库 / 扩展库): - 工程库:从当前打开的工程 worker 读取(含未保存内容); - 非工程库:从 lib.worker 读取(含未保存内容),worker 无缓存时回退网络获取, 自动处理 history_uuid(历史版本)、dataStrId(远程存储)与 2.0 → 3.0 格式转换。
获取失败(如库条目不存在)将返回 undefined
示例
javascript
// 1. 获取个人库 UUID 并新建符号作为读取对象(第四参数为符号类型,见 ELIB_SymbolType)
const libraryUuid = await eda.lib_LibrariesList.getPersonalLibraryUuid();
const symbolUuid = await eda.lib_Symbol.create(
libraryUuid,
`嘉立创示例_读取源码_${Date.now()}`,
[],
ELIB_SymbolType.COMPONENT
);
// 2. 读取该符号的文档源码(第二参数为符号所属库)
const pending = eda.lib_Symbol.getDocumentSource(symbolUuid, libraryUuid);
// 3. 等待 3 秒观察结果状态(当前版本 Promise 不 settle,用超时保护避免卡住)
const settled = await Promise.race([
Promise.resolve(pending).then(
source => `fulfilled,源码长度 ${source ? source.length : '空'}`,
() => 'rejected'
),
new Promise(resolve => setTimeout(() => resolve('pending(3 秒内未返回)'), 3000)),
]);
// 4. 清理测试符号(查询类需要清理)
await eda.lib_Symbol.delete(symbolUuid, libraryUuid);
console.log('symbolUuid:', symbolUuid);
console.log('returns:', typeof pending.then === 'function' ? 'Promise' : typeof pending);
console.log('settled:', settled);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27