asset.read()
把 manifest 声明的只读包内资源写入 ByteSink。assetId 是清单键,不是路径。
Syntax
const result = await host.asset.read(assetId, output, offset?);
Parameters
| 参数 | 类型 | 说明 |
|---|---|---|
assetId |
string |
manifest 中的稳定资源 ID |
output |
ByteSink |
接收字节的有界输出 |
offset |
u64 |
可选起始位置,默认 0 |
Return value
{ written: u32, required?: u64, eof: boolean }
eof: false 表示仍有数据。required 只在宿主知道完整大小时出现。
Examples
const chunk = new Uint8Array(64 * 1024);
let offset = 0;
for (;;) {
const result = await host.asset.read('levels/main', chunk, offset);
decoder.push(chunk.subarray(0, result.written));
offset += result.written;
if (result.eof) break;
}
Errors
not-found、invalid-offset、sink-too-small、limit-exceeded。宿主不得把部分数据截断后错误标为 eof: true。
Requirements
- 能力:
host:asset.read - 用户激活:不需要
- 来源:app-context
- 信任档位:green