Javascript Promessa concatenamento [chiuso]

3

Recentemente ho iniziato a lavorare con JS Promise s. Quello che mi piace sempre fare, è creare la funzione, che restituisce un Promise con il risultato finale desiderato, ma faccio solo 1 operazione / then . Considerare qualcosa di simile (questo preleva le versioni di un pacchetto npm in un array in ordine inverso):

function packageVersions(name) {
  return fetchJson(npmUrls.getPackageUrl(name))
    .then(npmPackage => npmPackage.versions)
    .then(versionsObject => Object.keys(versionsObject))
    .then(versions => versions.sort((a, b) => b.localeCompare(a)));
}

Come se stessi facendo un sacco di .maps in sequenza.

La mia domanda sarebbe: è considerata una buona pratica in generale? Questo potrebbe avere significativi inconvenienti di perfomance, se faccio un sacco di concatenamento? Consideri questo illeggibile in qualche modo?

Sarebbe meglio?

function packageVersions(name) {
  return fetchJson(npmUrls.getPackageUrl(name))
    .then(npmPackage => {
        const versions = Object.keys(npmPackage.versions);
        return versions.sort((a, b) => a.localeCompare(b));
    });
}
    
posta Balázs Édes 07.01.2016 - 07:53
fonte

1 risposta

0

Potenzialmente potrebbe avere alcuni problemi di prestazioni ma probabilmente non è un grosso problema. Sarebbe aggiungere un "tick" asincrono dopo ogni then quando in questo caso non è necessario.

Il grosso problema per me è che assumerei a prima vista che la catena delle promesse chiama metodi asincroni anche se non lo è.

    
risposta data 07.01.2016 - 21:28
fonte

Leggi altre domande sui tag