Estoy creando una función javascript para usar en glideapps, siguiendo este proceso . La función toma una URL de API de Google Maps como entrada de cadena y devuelve el archivo json como salida de cadena. Usando el ejemplo de google , creé esta prueba que funciona bien.
function test(request_url){ var axios = require('axios'); var config = { method: 'get', url: request_url, headers: { } }; var final = axios(config) .then(function (response) { console.log(JSON.stringify(response.data)); }) .catch(function (error) { console.log(error); }) return final} Cuando uso la misma función en el código para la función glideapp, obtengo dos errores. Primero, recibí el error: Error: Module name "axios" has not been loaded yet for context: _. Use require([]) y aborde el problema usando var axios = require(['foo'], function (foo) en su lugar.
window.function=function(request_url){ var axios = require(['axios'], function (axios) { //axios is now loaded. }); var config = { method: 'get', url: request_url, headers: { } }; var final = axios(config) .then(function (response) { console.log(JSON.stringify(response.data)); }) .catch(function (error) { console.log(error); }) return final} Ahora me sale el error TypeError: axios(...).then is not a function . ¿Cómo puedo solucionar esto? Gracias
Use la variable axios dentro de la función de require en lugar del valor de retorno de la función require.
require(['axios'], function (axios) { window.function=function(request_url){ var config = { method: 'get', url: request_url, headers: { } }; var final = axios(config) .then(function (response) { console.log(JSON.stringify(response.data)); }) .catch(function (error) { console.log(error); }) return final } });