Как переделать на Promise?

Есть функция:

export async function login(email, password) {
    try {
        const { data } = await $host.post('api/auth/login', {
            email,
            password
        })
        localStorage.setItem('jwt', data.token)
        return {
            isSuccess: true,
            payload: jwt_decode(data.token)
        }
    } catch (e) {
        return {
            isSuccess: false,
            payload: e.response.data
        }
    }
}

и вызов этой функции:

data = await login(email, password)

Как правильно сделать это на Promise?


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

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

В данном случае переделать на Promise просто:

  1. все после await перенести в then
  2. блок catch перенести в .catch

В итоге получится:

$host.post('api/auth/login', {
    email,
    password
}).then(({ data }) => {
    localStorage.setItem('jwt', data.token)
    return {
        isSuccess: true,
        payload: jwt_decode(data.token)
    }
}).catch(e => {
    return {
        isSuccess: false,
        payload: e.response.data
    }
})
→ Ссылка