De acuerdo ... a las 2 a.m., aquí es donde trazo la línea. Ayuda ... antes de que mi laptop termine saliendo por la ventana. :)Espere a AJAX antes de continuar a través de la función separada
He intentado usar setTimer, devoluciones de llamada, y todo lo demás que puedo pensar (junto con algunas otras sugerencias de Stackoverflow por supuesto). He eliminado todo, así que dejo solo el código base.
Lo que estoy buscando hacer es llamar a parseRow() y antes de guardar el registro al final, necesito obtener la categoría asociada (a través de AJAX); sin embargo, pasa justo al lado, así que la categoría siempre está "indefinida".
function parseRow(row){
var rowArray = row.trim().split(",");
var date = rowArray[0];
var checknum = rowArray[1];
var payee = rowArray[2];
var memo = rowArray[3];
var amount = rowArray[4];
//ERROR: blows right past this one and sets the category variable BEFORE ajax returns
var category = autoSelectCategory(payee);
saveRecord(date, checkNum, payee, memo, category, payment, deposit);
}
function autoSelectCategory(payee) {
var data;
$.ajax({
async: false,
url: "autoselectcategory",
dataType: "json",
data: {
string: payee
},
success: function (returnedData) {
data = returnedData;
}
});
return data;
}
EDIT: @ agregó la sugerencia de extravagante que hizo en respuesta a penartur a responder desde que era un idiota y no regresó los datos correctamente - que es lo que me pasa por quedarse hasta muy tarde. Lo anterior en realidad hace el truco ahora. Sin embargo, voy a implementar la devolución de llamada. – glassfish