Feathers: Exemplo de assíncrono / espera para ganchos necessários

Criado em 24 set. 2017  ·  4Comentários  ·  Fonte: feathersjs/feathers

Seria muito bom se alguém pudesse dar um exemplo funcional de uma função de gancho que está usando o padrão ES7 assíncrono / espera.

O gerador gera um stub como este:

// Use this hook to manipulate incoming or outgoing data.
// For more information on hooks see: http://docs.feathersjs.com/api/hooks.html

module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
  return function myHook (hook) {
    // Hooks can either return nothing or a promise
    // that resolves with the `hook` object for asynchronous operations
    return Promise.resolve(hook);
  };
};

Não consegui encontrar uma maneira de fazer uma ligação aguardada, como

response = await request('https://whatever.com')

dentro do myHook. Qualquer ajuda é muito apreciada!

Comentários muito úteis

Eu estava pensando esta manhã em adicionar alguns exemplos, de fato.

Todos 4 comentários

Você só precisa tornar return function myHook assíncrono:

// Use this hook to manipulate incoming or outgoing data.
// For more information on hooks see: http://docs.feathersjs.com/api/hooks.html

module.exports = function (options = {}) { // eslint-disable-line no-unused-vars
  return async function myHook (hook) {
    const body = await request('https://whatever.com');
    return hook;
  };
};

Eu estava pensando esta manhã em adicionar alguns exemplos, de fato.

Muito obrigado! Depois de remover meu erro estúpido e usar seu exemplo, tudo funcionou perfeitamente! Acho que é uma boa ideia adicionar um exemplo aos documentos, já que async / await torna o código muito mais legível.

Este problema foi bloqueado automaticamente, pois não houve nenhuma atividade recente depois que ele foi fechado. Abra um novo problema com um link para este problema para bugs relacionados.

Esta página foi útil?
0 / 5 - 0 avaliações