Асинхронность
Все операции, которые изменяют состояние ресурса (создание, изменение, удаление), имеют асинхронную сигнатуру. Это означает, что при вызове этих операций сервер возвращает объект Operation.
Объект Operation
содержит информацию об операции: статус, идентификатор, дату создания и др. Обращаясь к этому объекту, вы можете отслеживать статус операции. Статус операции отображается в поле done
. Если поле принимает значение true
, операция была завершена; в противном случае операция еще не выполнена.
При вызове метода Create
, возвращаемый объект Operation
будет содержать идентификатор создаваемого ресурса, даже если операция еще не была завершена. Используя этот идентификатор, вы можете обратиться к ресурсу через метод Get
или List
.
Если в ходе выполнения асинхронной операции возникла ошибка, сервер отменяет все запущенные процедуры и возвращает систему к предыдущему состоянию. Ресурсы, которые были созданы в ходе операции, будут удалены. В объект Operation
будет добавлено поле error
с описанием ошибки. При этом операция будет считаться завершенной, только когда система полностью откатится к предыдущему состоянию. Подробнее см. в описании объекта Operation.