Typical examples: http://msurguy.github.io/ladda-bootstrap
Crazier examples: http://tympanus.net/Development/ProgressButtonStyles
This is for a desktop app if it matters. Consider that the target view has about three different buttons. The advantage is that the user always knows which command of a few is executing.
Another point is that a button can transition into a different state afterwards:
Inactive (press to execute) -> In Progress (execution progress spinner) -> Finish (happy icon - click to close)