Javascript 应用程序函子能使异步任务更有效吗?

Javascript 应用程序函子能使异步任务更有效吗?,javascript,functional-programming,applicative,Javascript,Functional Programming,Applicative,在中,有一个示例解释了应用函子发挥作用的基本情况: // Http.get :: String -> Task Error HTML var renderPage = curry(function(destinations, events) { /* render page */ }); Task.of(renderPage).ap(Http.get('/destinations')).ap(Http.get('/events')) // Task("<div>some p

在中,有一个示例解释了应用函子发挥作用的基本情况:

// Http.get :: String -> Task Error HTML
var renderPage = curry(function(destinations, events) { /* render page */  });

Task.of(renderPage).ap(Http.get('/destinations')).ap(Http.get('/events'))
// Task("<div>some page with dest and events</div>")
//Http.get::String->Task Error HTML
var renderPage=curry(函数(目的地、事件){/*呈现页面*/});
Task.of(renderPage).ap(Http.get('/destinations')).ap(Http.get('/events'))
//任务(“包含dest和事件的某些页面”)
据说:

这两个Http调用都将立即发生,并且在解决这两个问题时将调用renderPage。这与单子版本相比,单子版本中的一个任务必须在下一个任务启动之前完成

我不能很好地理解它。我认为:


Task.of(renderPage).ap(Http.get('/destinations')).ap(Http.get('/events'))只是(Http.get('/events')).map(Http.get('/destinations').map(renderPage)),这两个Http调用是否会立即发生,而不是一个任务必须在下一个任务启动之前完成?

我不知道Folktale的
任务
,但通常异步计算环境中的应用程序“并行”运行,因为下一个计算不依赖于前一个任务的结果。当你看
then
链(类似于一元链)时,它是连续的,这就是为什么有一个特定的
Promise.all
方法的原因。