Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

118
Views
¿Cómo uso correctamente esperar dentro de la taquigrafía si no las declaraciones de Javascript?

No solo estoy haciendo una transición lejos de jQuery, sino que también estoy tratando de hacer que mi código sea mucho más ágil. Mientras trabajo en aplicaciones empresariales a gran escala, la cantidad de jQuery y JavaScript que se utiliza puede llegar a un punto crítico.

Quiero comenzar a trabajar de una mejor manera y usar JavaScript de vainilla nuevamente. Creo aplicaciones usando KendoUI y depende de jQuery para que funcione. Dicho esto, quiero mantener el resto de mi código como JavaScript básico, abreviado y eficiente (asincrónico cuando corresponda).

Estoy tratando de lograr los siguientes objetivos con una declaración de JavaScript mía

  • Encuentra el contenedor de pestañas
  • Vincule un detector de eventos para verificar la identificación de las pestañas cuando se shown su evento
  • Cargue una cuadrícula de KendoUI de forma asíncrona esperándola

Entonces, para lograr esto en JavaScript de vainilla abreviado, hice lo siguiente.

 //Find the tabs using the query selector document.querySelector('#main-tabs') //Add an event listener that listens for the `shown` bootstrap tab event .addEventListener('shown.bs.tab', (e) => { //Take the id of the tab and if the name equals "overview-tab" //then load the grid, if it doesn't then do nothing. (e.target.id == "overview-tab") ? load_grid_opportunities() : null; });

Ok, desde aquí fui y creé mi función asíncrona que carga mi cuadrícula. Creé una función asíncrona llamada load_grid_opportunities y luego encontramos un enlace de widget genérico basado en KendoUI jQuery.

 const load_grid_opportunities = async () => { $('#grid_opportunities').kendoGrid({ //shortened for brevity }); }

Aquí es donde llegué porque ahora me pregunto, ¿cómo espero esta función asíncrona en mi declaración if/else? Mi primer instinto fue simplemente llamar await en línea de esta manera:

 (e.target.id == "overview-tab") ? await load_grid_opportunities() : null;

Sin embargo, esto no funcionó ya que es un argumento inesperado. Luego traté de usar paréntesis para encapsular la solicitud, pero tampoco funcionó.

 (e.target.id == "overview-tab") ? (await load_grid_opportunities()) : null;

Entonces, ¿cómo diablos puedo esperar mi función?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para esperar su función, su función debe devolver la promesa, consulte el código a continuación.

 function load_grid_opportunities() { return new Promise((resolve, reject) => { $('#grid_opportunities').kendoGrid({ //shortened for brevity }); resolve(); }); } // Now you can call your function async function doSomething() { if (e.target.id == "overview-tab") { await load_grid_opportunities(); } }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!