何时使用ractive.set返回的承诺?

时间:2015-05-14 21:09:13

标签: ractivejs

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,在该集合之后将调用   操作和任何转换都已完成

基于此,我想知道这个承诺是否真的适用于转型后的工作。

1 个答案:

答案 0 :(得分:6)

  

基于此,我想知道这个承诺是否真的意味着   转型后的工作。

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

这也是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() ); 操作还有输入参数的哈希映射选项的原因,因此多个集合将一次批处理:

{{1}}