跳到主要内容

createDraft/finishDraft

提供和produce是一样的,唯一的区别是支持异步的结束草稿,而produce同步的,所以它们的具体使用方式可参加produce使用说明

createDraft负责创建草稿、finishDraft负责结束草稿,以下写法是将produce转为等效的createDraft/finishDraft表达方式

import { produce, createDraft, finishDraft } from 'limu';

const base = { a: 1, b: 2, c: [1, 2, 3], d: { d1: 1, d2: 2 } };
const next = produce(base, (draft) => {
draft.c.push(4);
});

// 等效于
const draft = createDraft(base);
draft.c.push(4);
const next = finishDraft(draft);

异步地结束草稿

async function demo() {
const draft = createDraft(base);
await doSomeStaff();
draft.c.push(4);
const next = finishDraft(draft);
}