【发布时间】:2021-05-27 18:58:01
【问题描述】:
我正在尝试对来自 Immer 的草稿对象进行编辑,这取决于承诺的解决。我了解如何使用async/await 语法来做到这一点,(见下文)
import produce from 'immer';
Promise.resolve({ eggs: 0 }).then(
produce(async (eggCounter) => { const n = (await 5); eggCounter.eggs += n; })
).then(console.log)
但是当我尝试将其转换为使用显式 Promise API 时,它不起作用:
import produce from 'immer';
Promise.resolve({ eggs: 0 }).then(
produce((eggCounter) => { Promise.resolve(5).then((n) => eggCounter.eggs += n) })
).then(console.log)
以上产生错误Uncaught (in promise) TypeError: illegal operation attempted on a revoked proxy。
如何修改第二个样本,使其(充分)等同于第一个样本?
【问题讨论】:
-
你
await号码是什么? -
这只是一个例子。在实际情况下,它是来自 API 的 Promise。
标签: javascript async-await es6-promise immer.js