Как переписать на промисы с async await?

Не получается переписать на промисы с async await.
В async/await все работает.

Kод:

const jwt = require('jsonwebtoken')
const {User} = require('../models/user')
const bcrypt = require('bcryptjs')

const createUser = (data) => {
  return User.create({
    where:{
      data
    }
  })
}

    const registerUser = (req, res) => {
      const {email, firstName, lastName, password} = req.body
      return findUser(email)
        .then(() => {
          alert(`The user with the same "${email}" email is already exists`)
        })
        .catch(() => {
          const user = new User({
            firstName,
            lastName,
            email,
            password
          })
          return user
        })
        .then(() => {
          const salt = bcrypt.genSalt(10)
          return salt
        })
        .then(()=>{
         return  user.password = bcrypt.hash(password, salt);
        })
        .then(()=>{
          const payload = {
            user: {
              id: user.id
            }
            jwt.sign(payload, config.get('jwtSecret'), {
              expiresIn: 360000
            }, (err, token) =>{
              if(err) throw err;
              res.json({token});
            })
          }
        })

    }

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