typescript - ar trebui să folosesc `await` atunci când apelez o funcție `async` într-o altă funcție `async`?


Am o funcție async care apelează o altă funcție async:

const func1 = async () => {...}

const func2 = async () => {func1()}

Mă întreb dacă mai are sens sau este complet inutil să folosesc await pentru a apela func1() în interiorul func2?

const func2 = async () => {await func1()}

Răspuns #1

În general, lucrul corect de făcut este să await funcția cuprinsă.

Dacă nu await func1, aceasta se execută într-un mod „trimite și uită”, astfel încât nu poți ști dacă a eșuat sau nu, iar orice linii de cod de sub ea în func2 se pot executa înainte ca func1 să se finalizeze.

Singura dată când are mult sens să nu folosești await este dacă vrei să returnezi o promisiune din funcția ta.

Ex :

const func2 = async () => { return func1(); }

await func2();

Când returnezi promisiunea, atunci acea promisiune este așteptată dacă folosești await când apelezi func2