Wycofywanie transakcji

Ukończone

Transakcje są głęboko i natywnie zintegrowane z modelem programowania JavaScript usługi Azure Cosmos DB for NoSQL. Wewnątrz funkcji Języka JavaScript wszystkie operacje są automatycznie opakowane w ramach jednej transakcji. Jeśli funkcja zostanie ukończona bez żadnego wyjątku, wszystkie zmiany danych zostaną zatwierdzone. Usługa Azure Cosmos DB for NoSQL wycofa całą transakcję, jeśli zostanie zgłoszony pojedynczy wyjątek ze skryptu.

W rzeczywistości początek funkcji JavaScript jest podobny do instrukcji BEGIN TRANSACTION w systemie bazy danych, a koniec zakresu funkcji jest funkcjonalnym odpowiednikiem COMMIT TRANSACTION. Jeśli zostanie zgłoszony jakikolwiek błąd, jest to funkcjonalny odpowiednik TRANSAKCJI WYCOFYWANIA.

Illustration of the begin and commit of an implicit transaction using a JavaScript stored procedure

W kodzie jest to wyświetlane po prostu przez zgłoszenie dowolnego błędu w języku JavaScript:

throw new Error('Something');

Korzystając z przykładu tworzenia elementu z wcześniejszej wersji tego modułu, można utworzyć funkcję wywołania zwrotnego, aby określić, czy operacja zwróciła błąd z serwera. Jeśli tak, możesz natychmiast przywrócić błąd, aby zwarcić kod i spowodować wycofanie całej transakcji procedury składowanej.

(error, newItem) => {
    if (error) throw error;
    // Do something with item
}