Gabarito: A) acesso a um subconjunto de métodos do objeto Deferred, prevenindo que usuários modifiquem o estado do objeto que a produziu.
O método permite que uma função assíncrona impeça que outro código interfira no andamento ou status de sua solicitação interna. A Promise expõe apenas os métodos Deferred necessários para anexar manipuladores adicionais ou determinar o estado (then, done, fail, always, pipe, progress, state e promise ), mas não aqueles que alteram o estado (resolve, reject, notify, resolveWith, rejectWith, e notifyWith ).
Se for fornecido, anexará os métodos a ele e retornará esse objeto em vez de criar um novo. Isso pode ser útil para anexar o comportamento da Promise a um objeto que já existe.
Se você estiver criando um Deferred, mantenha uma referência ao Deferred para que ele possa ser resolvido ou rejeitado em algum momento. Retorne apenas o objeto Promise via para que outro código possa registrar retornos de chamada ou inspecionar o estado atual.
https://api.jquery.com/deferred.promise/