试试这个
- 在公式单元格输入自定义函数。
- 在异步工作等待时观察忙碌状态。
- 修改参数,让 worker 重新计算结果。
它是怎么做到的
自定义公式注册是宿主到引擎的契约。UI 反映引擎状态,不伪造客户端 loading,因此错误和异步结果共用同一条公式生命周期。
WORKER / WASM DEMO
注册宿主函数,让进行中的异步计算在 Promise 完成前保持忙碌状态。
自定义公式注册是宿主到引擎的契约。UI 反映引擎状态,不伪造客户端 loading,因此错误和异步结果共用同一条公式生命周期。
import type {
WorkerWorkbookBackendSheet,
WorkerWorkbookBackendSheetInput,
WorkerWorkbookClient,
} from '@einfach/solid-excel/vnext'
export const customFormulaSheets: WorkerWorkbookBackendSheetInput[] = [
{ id: 'items', name: 'Items' },
]
function text(client: WorkerWorkbookClient, sheet: number, address: string, value: string) {
return client.setCell(sheet, address, { type: 'text', value })
}
function number(client: WorkerWorkbookClient, sheet: number, address: string, value: number) {
return client.setCell(sheet, address, { type: 'number', value })
}
function formula(client: WorkerWorkbookClient, sheet: number, address: string, value: string) {
return client.setFormulaDetailed(sheet, address, value)
}
/** Seeds formula calls before the host registrations trigger engine re-evaluation. */
export async function seedCustomFormulasWorkbook(