In JavaScript, Promises have a method called `then`, which is used to unpack the result in case of success, for example,

```
fetch("google.com").then(console.log)

```

From [this Haskell's tutorial](http://learnyouahaskell.com/functors-applicative-functors-and-monoids), I also found a similar thing which is called `fmap`, for example,

```
fmap putStrLn (fetch "google.com")

```

They look pretty similar, but I am not sure if they are **equivalent**. That's why I wanted to ask if they are the same thing. 

PS: The term **equivalent** shall be that of the Curry-Howard Correspondence kind of equivalent.