En la aplicación vuejs3, quiero usar el método común, así que lo puse en mixin resources/js/appMixin.js como:
export default { methods: { async getBlockPage(page_slug) { const response = await axios.post('/get_block_page', {slug: this.page_slug}) console.log('response.data.page::') console.log(response.data.page) // In the browser console I see this valid page object returned return response.data.page; }, // getBlockPage() {pero llamando a este método en el archivo vue:
mounted() { this.about= this.getBlockPage("about"); console.log('AFTER this.about::') // I DO NOT this output console.log(this.about) },y salida sobre var veo
"[object Promise]"¿Cuál es la forma válida?
Esa pregunta parece un poco específica luego del enlace proporcionado, ya que el método está dentro de mixin ...
¡Gracias por adelantado!
Sí, claro, getBlockPage es una función asíncrona, siempre devuelve Promise.
async mounted() { this.about= await this.getBlockPage("about"); console.log(this.about) },o
mounted(){ this.getBlockPage("about") .then(result => { console.log(result); ) .catch(error => { //error handler }); }Puede obtener más información aquí: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Async/await es solo un azúcar sintáctico para definir el comportamiento de Promise en su función