javascript - Kako mogu deklarirati funkciju kao asinhronu u sučelju?


Imam sučelje i klasu koja implementira metode, do sada nisam pronašao rješenje za svoj problem. Imam funkciju definiranu myAsyncFunction() u sučelju i želim je učiniti async:

export interface State {
  state: Class;

  myAsyncFunction(): any;
}

Odgovor #1

Za pozivatelja, asinkronu funkciju je samo funkcija koja vraća obećanje:

export interface State {
  state: string;
  myAsyncFunction(): Promise<any>;
}

const state : State = {
  state: 'foo',
  myAsyncFunction: async () => 'bar'
};

Odgovor #2

TypeScriptu nije važno koristi li funkcija ključnu riječ async. Bitno mu je samo da jest funkcija, koje argumente prima i koja je vrijednost koju vraća.

Jedino značenje ključne riječi async u tom kontekstu je da funkcija vraća obećanje … koje će odgovarati any.