Когда использовать обещание, возвращаемое ractive.set?

Метод ractive.set возвращает обещание. При выполнении простой операции установки (одиночное значение или карта) и последующей немедленной ссылке на новое значение через ractive.get рекомендуется использовать промис? Или это совершенно не нужно?

Я избегал обещания и обнаружил, что мне это не нужно, но, может быть, мне пока просто везло. Вот пример того, что я имею в виду:

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

Меня беспокоит то, что операция установки является асинхронной, и это станет очевидным на более медленных машинах или если я начну использовать более продвинутые функции Ractive.

Согласно документам Ractive:

[ractive.set] Возвращает промис, который будет вызываться после завершения операции установки и любых переходов.

Исходя из этого, я задаюсь вопросом, действительно ли это обещание предназначено для постпереходной работы.


person Keith    schedule 14.05.2015    source источник


Ответы (1)


Исходя из этого, я задаюсь вопросом, действительно ли это обещание предназначено для постпереходной работы.

Точно. Обновление значения (и результирующие изменения 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() );
person martypdx    schedule 14.05.2015