In general, you should have an idea of the next projects you are going to work on. When customers give feedback, that can help to reorder the projects. If you are doing your job correctly, there won't be any huge surprises.
There will be occasional one-off customer requests. We call these "customer love" at my company. We reserve some percentage of our development time (maybe 10-20%) for doing these, because they do create a lot of goodwill with customers. But you have to be pretty disciplined about making sure that they are 1-2 days or less of work and not 1 or to months of work.
There will occasionally be things that customers demand as part of a deal cycle. In some cases you have to build these, but it is important to explicitly highlight what you are foregoing and to be conscious of this tradeoff. Note: hiring contractors doesn't really work well, because someone will have to support it (just went through this).