Olá naoto_a ,
O código pode parecer assim. Não testei o código a seguir, ainda pode conter erros.
$.each(oDetalle, function (i, valor) {
// ALGUMAS OPERAÇÕES
new Promise((resolve, reject) => {
oModel.read("/ValRutDJSet('" + valorRut + "')", {
async: true,
success: (oDataRut) => {
// ALGUMAS ATRIBUIÇÕES
resolve(/*Passar os resultados para a função de resolve para tê-los disponíveis no próximo passo*/);
},
error: reject
})
})
.then((oResult /* Resultado do primeiro resolve*/) => {
return new Promise((resolve, reject) => {
oModel.read("/ValFacturaSet(PKunnr='" + kunnr + "',PNrofa='" + numeroFactura + "')", {
async: true,
success: function (oDataFac) {
try {
oThis.mensagemErroValidacaoImport();
resolve()
} catch (err) {
oThis.mensagemErroValidacaoImport("ERROS");
reject(err)
}
},
error: reject
});
})
}).catch((err) => {
// Tratamento de erros
errorFinal = "Erro 500, não é possível comunicar com o servidor";
})
});