Aquí está mi código para verificar el tamaño y el ancho de la imagen que coincide con los criterios
im.identify(req.files.image,function (err,features) { //console.log(features); if(features.width<1000){ console.log('need bigger size'); } }); //upload code here beginUpload(); Dado que es asíncrono, la función beginUpload() se invoca temprano, entonces, ¿cómo puedo verificar el tamaño de la imagen de forma sincrónica? es decir, quiero cargar la imagen que pasa los criterios de tamaño
Llame a su función en una promesa.
Cuando termine su función de identificación (), la promesa (entonces ()) se ejecutará.
Prueba esto :
im.identify(req.files.image,function (err,features) { //console.log(features); if(features.width<1000){ console.log('need bigger size'); //stop the function to don't execute then() return false; } }).then(function() { //upload code here beginUpload(); });@Maitre Manuel señala correctamente que la interfaz de usuario puede implementar una Promesa para garantizar que la validación asíncrona ocurra antes de la publicación.
Esta pregunta SO analiza algunos de los códigos que puede usar para el cheque en sí. Por ejemplo, para determinar el ancho de la imagen en el lado del cliente antes de publicar.