Pull to refresh

Comments 4

UFO landed and left these words here
> а зачем, собственно, придумывать новую сущность Future, когда можно было использовать уже давно работающий в js Promise API

Во-первых, Dart совершенно самостоятельный язык, зачем ему смотреть на то как в JS что-то сделано?

А, во-вторых, посмотрите на даты релиза Dart и Promise API в JS. Внезапно обнаружится, что Dart появился где-то в 2011 (начал разрабатываться где-то в 2010м) — и с самого начала имел Future, и Promise API в JS еще даже дизайнить не начали в то время.
Потому как термин Future более ранний по отношению к термину Promise. К тому же, Dart в большей степени смотрит на Java, где Future, а не на JS, где Promise.
Вряд ли кто-то что-то придумывал в этом случае. Идеи Future и Promise давно не новы
Немного истории
image

Еще есть Delay, Deferred. Все они описывают примерно один и тот же подход к синхронизации данных, когда у нас есть объект, ожидающий результат. Они, конечно, могут различаться между разными языками. В некоторых языках (привет, Java) могут присутствовать оба варианта.
Из таких явных различий: при Future мы можем только ожидать и прочитать значение (read-only, у нас нет никакого сетера), в то время Promise мы можем сами завершить с тем значением и состоянием, которые хотим видеть.
В остальном же, если сравнить Future из Dart и JS Promise, они схожи: API, async-await вариант, оба помещаются в очередь микротасков в event loop
Only those users with full accounts are able to leave comments. Log in, please.