Hola naoto_a ,
El código podría verse así. No probé el siguiente código, aún podría contener errores.
$.each(oDetalle, function (i, valor) {
// ALGUNAS OPERACIONES
new Promise((resolve, reject) => {
oModel.read("/ValRutDJSet('" + valorRut + "')", {
async: true,
success: (oDataRut) => {
// ALGUNAS ASIGNACIONES
resolve(/*Pasar los resultados a la función de resolve para tenerlos disponibles en el próximo paso*/);
},
error: reject
})
})
.then((oResult /* Resultado de primera resolve*/) => {
return new Promise((resolve, reject) => {
oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
async: true,
success: function (oDataFac) {
try {
oThis.mensajeErrorValidacionImport();
resolve()
} catch (err) {
oThis.mensajeErrorValidacionImport("ERRORES");
reject(err)
}
},
error: reject
});
})
}).catch((err) => {
// Manejo de errores
errorFinal = "Error 500, no se puede comunicar con el servidor";
})
});