Dentro de la función en la captura de pantalla, estoy agregando los datos de la función de back-end a la matriz con axios.get. Pero cuando salgo de axios, los valores de la matriz que imprimo no están definidos.
Obtengo el valor de cadena del backend. Quiero poder usarlo en diferentes métodos devolviéndolo. Por favor, ayúdame. No puedo encontrar la solución.
getReasonsForWaitingCustomer() { this.adimKodlariLastString = ""; if (this.$route.params.status == "musteri-bekleniyor") { axios.get(URL + "xxx/xxx?xxx=xxx) .then(response => { for (var i = 0; i < response.data.data.length; i++) { if (this.stepCode.includes(response.data.data[i].adim_kodu) == false) { this.stepCode.push(response.data.data[i].adim_kodu); } } for (var j = 0; j < this.stepCode.length; j++) { this.adimKodlari += this.stepCode[j] + ","; } this.adimKodlariLastString = this.adimKodlari.slice(0, -1); console.log("inAxiosThen",this.adimKodlariLastString); }) } console.log("afterAxios",this.adimKodlariLastString); return "apfapofapkapfka" --> It's working return this.adimKodlariLastString --> It's not working. I want this to work. },
En los ejemplos de soluciones que revisé, el valor entrante se usó en las etiquetas html. Pero quiero poder usar el valor entrante en los métodos.
Cuando presiono la consola que no sea .then() no obtengo los valores.
No obtendrá ningún dato de esta manera porque las llamadas axios son asíncronas. La forma más fácil y limpia es:
const response = await axios.get('url') console.log(response.data) this.adimKodlariLastString = response.data // and then you could do your logic
Alternativamente, para que funcione con su código, simplemente puede agregar:
await
antes de axios (podría hacerlo con promesas puras pero terminará obteniendo Promise dentro de Promise).
Actual, este es el último estado de mi función. esto está funcionando La devolución es exitosa.
async getReasonsForWaitingCustomer() { let adimKodlariLastString = ""; let stepCode = []; let adimKodlari = ""; if (this.$route.params.status == "xxx") { const response = await axios.get(URL + "xxx/xxx"); for (var i = 0; i < response.data.data.length; i++) { if (stepCode.includes(response.data.data[i].adim_kodu) == false) { stepCode.push(response.data.data[i].adim_kodu); } } for (var j = 0; j < stepCode.length; j++) { adimKodlari += stepCode[j] + ","; } adimKodlariLastString = adimKodlari.slice(0, -1); } console.log("adimKodu",adimKodlariLastString); return adimKodlariLastString; },
Miré sus soluciones, pero no entendí nada. En las soluciones, asignaron manualmente un valor y llamaron al resultado. No tengo idea de cómo obtener mis datos entrantes en PromiseResult.
Buenas noticias. Encontré la solución de este problema. Espero que sea útil para aquellos que están buscando una solución. Como mencioné, dije que quería usar el valor que venía como mensaje en otra función.
Me llaman con éxito mis valores en esta función
Convierto esta función en async. Traje la primera función como await.