-
Notifications
You must be signed in to change notification settings - Fork 89
Closed
Labels
Description
It would be great to add return statement to async-await library because it simplifies the code.
Consider example with return and without return.
Login function with return statement:
def login(login: String, pass: String): Future[Status] = async {
val passHashFuture = getPassFromDb(login)
val passHashOption = await(passHashFuture)
if (passHashOption.isEmpty) ret(false)
val pass = passHashOption.get
val passValid = validatePassword(pass, passHash)
if (!passValid) ret(false)
true
}Login function without return statement:
def login(login: String, pass: String): Future[Status] = async {
val passHashFuture = getPassFromDb(login)
val passHashOption = await(passHashFuture)
if (passHashOption.isDefined) {
val pass = passHashOption.get
val passValid = validatePassword(pass, passHash)
if (passValid) {
true
} else {
false
}
} else {
false
}
}As you can see the first case looks much better then second one.