Является ли ниже лучший способ использовать гвардейский знак с угловым обещанием?
function doIt(p) {
var dfd = $q.defer();
if (!p) {
// this the best syntax to return the promise?
dfd.resolve(true);
return dfd.promise;
}
// whole bunch of code stuff with a resolve() and reject()
// finally
return dfd.promise;
}
Я думаю, это было бы намного чище
function doIt(p) {
if (!p)
return $q.when(true)
else
return someLongFunction()
}
или если вы хотите, чтобы это было ясно, это охранник
function doIt(p) {
if (!p)
return $q.when(true)
return someLongFunction()
}
return $q.when(!p || someLongFunction())
.