Eu tenho uma especificação de um cliente para uma implementação de um método em um módulo:
// getGenres():
// Returns a promise. When it resolves, it returns an array.
Se houver uma variedade de gêneros,
['comedy', 'drama', 'action']
Aqui está um método de esqueleto com uma promessa:
MovieLibrary.getGenres = function() {
var promise = new Promise(function(resolve, reject) {
/* missing implementation */
});
return promise;
};
A promessa pode ser feita para retornar os dados encontrados nos gêneros? Existe uma maneira melhor de obter a descrição das especificações?
javascript
sealocal
fonte
fonte
resolve([genre1, genre2, ...]);
dentro da implementação da promessa.Respostas:
Parece que você não está entendendo como as promessas são usadas. Você retorna uma promessa. Depois, quando seu código resolver a promessa, ele será resolvido com um resultado e esse resultado será passado para o
.then()
manipulador anexado à promessa:fonte
Versão atualizada usando em
await
vez de.then()
.await
pára de executar até que a promessa seja resolvida (ou seja, tenha um valor). Ao contrário do uso,.then()
você pode apenas manterawait
os valores enquanto executa várias funções que retornam promessas, e a execução continua na próxima linha (isso é chamado de 'estilo direto). Também é muito melhor olhar, já que é consistente com o restante do JavaScript, do que em.then()
qualquer lugar.Aguardar é suportado em todos os navegadores e nós atuais
fonte