Service platforms must determine rules for matching heterogeneous demand (customers) and supply (workers) that arrive randomly over time and may be lost if forced to wait too long for a match. We show how to balance the trade-off between making a less good match quickly and waiting for a better match, at the risk of losing impatient customers and/or workers. When the objective is to maximize the cumulative value of matches over a finite-time horizon, we propose discrete-review matching policies, both for the case in which the platform has access to arrival rate parameter information and the case in which the platform does not. We show that both the blind and nonblind policies are asymptotically optimal in a high-volume setting. However, the blind policy requires frequent re-solving of a linear program. For that reason, we also investigate a blind policy that makes decisions in a greedy manner, and we are able to establish an asymptotic lower bound for the greedy, blind policy that depends on the matching values and is always higher than half of the value of an optimal policy. Next, we develop a fluid model that approximates the evolution of the stochastic model and captures explicitly the nonlinear dependence between the amount of demand and supply waiting and the distribution of their patience times. We use the fluid model to propose a policy for a more general objective that additionally penalizes queue build-up. We run numerous simulations to investigate the performance of the aforementioned proposed matching policies.