JS. Объясните, как работает данный код

Разбираю код, который был написан до меня и встретил вот такую конструкцию:

export const reset = () => () => {
   axios.post('какой-то URL', { action: 'какой-то action' })
        .then(() => location.reload())
}

И я не очень представляю как работает эта часть: const reset = () => () =>. Почему и в честь чего здесь 2 пары скобок? Функция вызывается по нажатию. Проект написан на React с TypeScript. Памагити.


Ответы (1 шт):

Автор решения: TilikWebDeloper

const reset - в Вашем примере является функцией высшего порядка, которая возвращает функцию.

const example = reset()
example() 

Теперь example будет равен функции и Вы можете ее вызвать. Такие функции часто используют в замыкании.

const logNubmer = (number) => () => {
   console.log(number)
}


or 


function logNumber (number) {
     return function () {
          console.log(number)
     }
}

const showNumber = logNumber(3)

showNumber() // console.log(3)
→ Ссылка