Js Deferred / Promise / Future по сравнению с функциональными языками, такими как Scala

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

Я не принимаю какие-либо конкретные JsPromise Framework, потому что, похоже, многие реализуют аналогичные спецификации (например, Promise / A). Я только использовал Q до сих пор.

Кажется, что в Javascript мы называемDeferred объект, который мы решили завершитьPromise, В Scala, кажется,Promise это объект, который вы решили получитьFuture монада.

Может кто-нибудь сказать мне, если это правильно? Есть ли веская причина для другого использования терминаPromise между Джи и Скалой?

Кроме того, в Скала мы обычно цепочкиFuture монады с дальнейшими вычислениями с использованием таких операторов, какmap а такжеflatMap (также называемыйbindв Хаскеле). Что является эквивалентом этого в Js?

Я могу ошибаться, но мне кажется, что в Jsthen наPromise вид ручки какmap а такжеflatMap операторы верно? Если это так, возможно ли получитьpromise of promise of result в Js? Как мы можем получитьFuture[Future[Result]] в Scala (который может быть сведен кFuture[Result] в любом случае).

Это JsPromise монада? Это выглядит так, даже если имена методов не совпадают с теми, что мы встречаем в литературе по монадам.

Ответы на вопрос(3)

Ваш ответ на вопрос