Así que estoy tratando de conectar 2 Promise nuevos entre sí para poder enviar información entre ellos. Entonces, quiero usar image.url que se hace en la primera promesa, se usará en la segunda promesa, pero cuando quiero llamar a image.url , no está definido. ¿Alguien tiene una idea para hacer que esto funcione? (Por cierto, no hay nada entre el código, solo quiero marcar la diferencia entre la Promesa 2).
Primera promesa:
image.promise = new Promise((resolve, reject) => { const formData = new FormData(); formData.append('files', file); axios .post('http://api.resmush.it/', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { image.url = response.data.dest; console.log("The compressed image url: ", image.url) }) .catch(() => reject()); }) .then(response => { image.status = STATUS_OK; image.savings = response.data.percent; })Segunda promesa:
image.promise = new Promise((reject) => { console.log(image.url); function downloadFile() { axios .get('http://par3.static.resmush.it/1e5b76fc993169757c1319c027f5dca3/insta_logo.jpg') .then(response => {console.log(response)}) // .then(response => resolve(response)) .catch(() => reject()); // .catch(reject => {console.log(reject)}) } downloadFile(); }No estoy seguro de entender por qué quiere usar este patrón, pero si quiere asegurarse de que la segunda promesa pueda tener acceso a algo definido en la primera llamada, debe asegurarse de no llamar a la segunda promesa antes. el primero ha sido resuelto. Tal vez algo como esto:
// ... axios .post('http://api.resmush.it/', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { image.url = response.data.dest; // not sure what you want to do here, I just pasted your code console.log(image.url); function downloadFile() { axios.get('http://par3.static.resmush.it/1e5b76fc993169757c1319c027f5dca3/insta_logo.jpg') .then(response => {console.log(response)}) // ... } downloadFile(); })