Возможно, вы знакомы с другим языком, где при индексировании символа строки возвращается целое число.
В JavaScript вы получаете человеческое представление строки. Строка изначально кодируется в UTF-16, преобразуется в двоичный файл, а затем сохраняется в памяти. Однако, когда вы получаете к нему доступ, вместо кода UTF-16 вы получаете реальную строку из-за специфического для конкретного языка автоматического преобразования.
Однако, если вы используете Node.js, вы можете использовать буфер для хранения строки и обработки двоичных данных напрямую.
В JavaScript, если вы хотите получить код, вы можете использовать метод codePointAt (index) :
alert( "z".codePointAt(0) ); // 122
alert( "Z".codePointAt(0) ); // 90
Я предполагаю, что Вы используете.NET здесь. При этом можно просто перенести всю секцию кода в a using
оператор с a TransactionScope
экземпляр и это обработают семантику транзакции для Вас. Просто необходимо звонить Complete
метод в конце:
//BillingServices - This is my billing service layer. called from the UI
public Result GenerateBill(BillData obj)
{
// Create the transaction scope, this defaults to Required.
using (TransactionScope txScope = new TransactionScope())
{
//Validate BillData
//Create a receivable line item in the receivables ledger
BillingRepository.Save(receivableItem);
//Update account record to reflect new billing information
BillingRepository.Save(accountRecord);
//...do a some other stuff
BillingRepository.Save(moreStuffInTheDatabase);
// Commit the transaction.
txScope.Complete();
}
}
Если исключение происходит, это имеет эффект не вызова Complete
когда из блока кода выходят; Dispose
метод на TransactionScope
реализация IDisposable
интерфейс называют когда объем using
из оператора выходят.
В Dispose
звоните, это проверяет, чтобы видеть, завершилась ли транзакция (это состояние установлено когда Complete
успешно выполняется). Если то состояние не установлено, оно выполняет откат.
Можно затем вложить это в другом TransactionScope
экземпляры (глубже в Вашем стеке вызовов на том же потоке) для создания больших транзакций через несколько репозиториев.