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

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

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

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

根据Ractive docs:

[ractive.set]返回一个 promise ,即在设置之后将调用
操作和任何过渡都完成


基于此,我想知道这个 promise 是否真的适用于过渡后工作。

最佳答案

基于此,我想知道这个 promise 是否真的意味着
过渡后的工作。

究竟。值更新(以及每个模板导致的DOM更改)发生在同步上,promise用于对转换结束进行异步响应。

这也是为什么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() );

关于ractivejs - 什么时候使用ractive.set返回的promise?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30247365/

10-09 16:54