Asynchronous APIs frequently need to provide the user with some way to cancel long running or expensive operations. Some examples: A browser HTTP fetch API needs to allow the user to cancel network operations if the current request is no longer required by the user interface. A database access API needs to allow the user to cancel a long-running query when the client no longer needs the results of