Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
Función que regresa antes de que se resuelva la promesa jQuery dentro de la promesa

Tengo una función que llama a dealCardSelectableAI() , que configura una serie de promesas diferidas de jQuery. A continuación, se llama a la función setCardName() desde su interior. Una vez que ambas funciones completen sus tareas, debería saveGame() .

Todo funciona, excepto setCardName() no se completa antes de que se saveGame() . Parece que deferredQueue.push(setCardName(system, result)); no está funcionando como esperaba. No estoy seguro de dónde me estoy equivocando o cómo resolver el problema.

 var setCardName = function (system, card) { var deferred = $.Deferred(); require(["cards/" + card[0].id], function (data) { var cardName = loc(data.summarize()); system.star.ai().cardName = ko.observable(cardName); deferred.resolve(); }); return deferred.promise(); }; var dealCardSelectableAI = function (win, turnState) { var deferred = $.Deferred(); // Avoid running twice after winning a fight if (!win || turnState === "end") { var deferredQueue = []; _.forEach(model.galaxy.systems(), function (system, starIndex) { if ( model.canSelect(starIndex) && system.star.ai() && system.star.ai().treasurePlanet !== true ) { deferredQueue.push( chooseCards({ inventory: inventory, count: 1, star: system.star, galaxy: game.galaxy(), addSlot: false, }).then(function (result) { deferredQueue.push(setCardName(system, result)); system.star.cardList(result); }) ); } }); $.when(deferredQueue).then(function () { deferred.resolve(); }); } else { deferred.resolve(); } return deferred.promise(); }; dealCardSelectableAI(false).then(saveGame(game, true));
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su código dice llamar a saveGame () y lo que se devuelve de la llamada a la función debe establecerse en ese momento. No está diciendo, "llame a saveGame cuando haya terminado"

 dealCardSelectableAI(false).then(function () { saveGame(game, true) });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda