Czy taki kod jest poprawny?

0

Możliwy jest pusty return?

module.exists = async function (key) {
    if (!key) {
      return;
    }
1

Tak, taki kod jest prawidłowy (chociaż async jest niepotrzbne, gdy nie korzystamy z await).

0

@Xarviel: to kod nie mojego autorstwa stąd pytanie.

Czyli jeśli jest puyste return to zwraca sam siebie tak? Dobrze rozumiem?

0

Zwróci CI undefined

1

Puste return zwraca wartość undefined, czyli można powiedzieć, że taka funkcja w rzeczywistości nic nie zwraca :P

Wszystkie 3 przykłady dadzą nam taki sam wynik.

function _return() {
  return;
}

function returnUndefined() {
  return undefined;
}

function empty() {

}

console.log(_return()); // undefined
console.log(returnUndefined()); // undefined
console.log(empty()); // undefined
2

uzupełniając - funkcje oznaczone async zwracają zawsze Promise, więc jak masz async, to puste return zwróci obiekt Promise:

async function foo() {
   return;
}

console.log(foo()); // wyświetli obiekt Promise

Tyle, że ponieważ było samo return; to ten konkretny obiekt Promise i tak się rozwiąże do undefined (jeśli użyjemy na nim metody .then albo zrobimy na nim await).

1 użytkowników online, w tym zalogowanych: 0, gości: 1