什么时候使用 ractive.set 返回的承诺?

When to use the promise returned by ractive.set?

ractive.set方法returns一个承诺。当执行 简单 设置操作(单个值或映射),然后立即通过 ractive.get 引用新值时,是否建议使用 promise?还是完全没有必要?

我一直在逃避承诺,发现我不需要它,但也许到目前为止我只是很幸运。这是我的意思的一个例子:

ractive.set("foo", "bar");
console.log(ractive.get("foo"));   // always outputs the correct value "bar"

我担心设置操作是异步的,这在速度较慢的机器上会变得很明显,或者如果我开始使用 Ractive 的更高级功能。

根据 Ractive docs:

[ractive.set] Returns a Promise that will be called after the set operation and any transitions are complete.

基于此,我想知道这个承诺是否真的适用于 post-过渡工作。

Based on that, I wonder if the promise is really meant for post-transition work.

没错。值更新(以及每个模板产生的 DOM 更改)同步发生 ,承诺用于异步响应结束转换。

这也是为什么 set 操作也有一个用于输入参数的哈希映射选项,因此多个集合将被一次性批处理:

ractive.set({
    foo: 'foo',
    bar: 'bar'
}).then( () => {
   // this happens asynchronously ***after*** code execution has
   // continued below on next event cycle or after transitions complete 
});

// data and DOM have been updated as the code continues synchronously here:
console.log( ractive.get() );