¿Las promesas API en Javascript son simplemente azúcar sintáctico sobre XHR?

No, las promesas no tienen absolutamente nada que ver con XHR. Una promesa es solo un valor que estará disponible en algún momento en el futuro (también se les llama futuro por ese motivo). El principal problema que resuelven es la capacidad de encadenarlos, por lo que no es necesario tener devoluciones de llamada anidadas. También son una mejor abstracción porque puedes devolverlos de las funciones, son valores normales.

Lo que los usa depende de usted; en uno de mis proyectos los utilizo para representar imágenes que aún no se han descargado (vinculando la función de resolución al evento que dice que la imagen se ha cargado, y la función de rechazo a onerror) . La función del cargador está memorizada, si hay varias solicitudes de la misma imagen, simplemente devuelvo la misma promesa: no es necesario rastrear el estado y observar a quién llama cuando funciona, puede usar “entonces” todas las veces que quiera. )