Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
Consulta el clúster de corrimiento al rojo usando NodeJs de forma asíncrona

Mi tarea es copiar algunas tablas de corrimiento al rojo del grupo uno a un grupo nuevo. Para esto estoy escribiendo un script en nodejs. Estoy usando aws-sdk RedshiftData api para obtener los datos. Tengo dos consultas separadas que quiero ejecutar en paralelo. El siguiente es mi código

 class syncRedShiftNodes { constructor(){ ... } readDataOne(){ let newSqlQuery = `select * from ${this.tableName} limit 10`; const params = { ClusterIdentifier: clusterIdentifier, Sql: newSqlQuery, Database: database, DbUser: dbUser }; return new Promise((resolve, reject)=>{ return awsRedshift.executeStatement(params, function(err, res){ if (err) console.log(err, err.stack); // an error occurred else{ return awsRedshift.getStatementResult({Id:res.Id}, function(error, data){ if (error) console.log(error, error.stack); // an error occurred else return data; }); } }); }); } readDataTwo(){ ...//identical to above function except the query } main(){ return Promise.all([this.readDataOne(), this.readDataTwo()]) .spread((data1, data2)=>{ console.log("promise resolved!!"); return true; } }

El problema es que mi código nunca llega al registro de "promesa resuelta". Si coloco un registro en la devolución de llamada de getStatementResult de corrimiento al rojo, eso se está imprimiendo correctamente, pero mi identificador nunca llega a la declaración de promise.all().then que no puedo entender por qué.

Otra pregunta que tenía en mente era si es una buena práctica usar un patrón de este tipo dentro de una clase.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No resolviste o rechazaste tu promesa dentro de la clase.

Ejemplo a continuación

 class syncRedShiftNodes { constructor() {} readDataOne() { let newSqlQuery = `select * from ${this.tableName} limit 10`; const params = { ClusterIdentifier: clusterIdentifier, Sql: newSqlQuery, Database: database, DbUser: dbUser, }; return new Promise((resolve, reject) => { awsRedshift.executeStatement(params, function (err, res) { if (err) { console.log(err, err.stack); reject(err); } else { awsRedshift.getStatementResult( { Id: res.Id }, function (error, data) { if (error) { console.log(error, error.stack); reject(error); } else { resolve(data); } } ); } }); }); } readDataTwo() {} async main() { try { const result = await Promise.all([ this.readDataOne(), this.readDataTwo(), ]); return result; } catch (err) { console.log(err); } } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda