Vejam essa situação, bem corriqueira, o form faz um post de um novo produto em um cadastro de produtos. Nesse cadastro preciso ver se a informação categoria é uma categoria já existente na tabela de categorias ou se é uma nova categoria que está sendo criada. Nesse caso, tenho de aninhar a gravacao do novo produto dentro do retorno do callback que vai pesquisar as categorias?
- Faço os asserts para os erros de validacao comuns
var produtosDAO = new app.infra.ProdutosDAO(app);
produtosDAO.buscaCategoria(cadastro.nm_categoria, function(erros, resultados){
if(resultados!='[]'){
-se nova categoria adiciono mais um erro de validacao para isso
--renderizo os erros de validacao (1)
}
else{
--se nao tiver erros de validacao anteriores
Faço a gravacao.
--mas se tiver erros de validacao anteriores
renderizo erros de validacao(2)
}
Notei que se não aninhar, a gravacao pode acontecer antes que a resposta da existência da categoria seja emitida. Se sim, Isso pode produzir muita confusão, não? Porque dentro desses aninhamentos, dependendo da resposta, teremos vários caminhos e em alguns deles acabarei por duplicar código (1) e (2).
e só aproveitando, esse (resultados!='[]') é assim mesmo? Para ver quando um select não retorna nada?