我最近了解了Promises,它看起来与SQL Transactions类似。
Promise是顺序回调
它们是同一概念的不同实现来处理异步事件吗?
答案 0 :(得分:3)
Promises是处理异步的一般概念。事务是在更新多个记录时保证原子性的一种方法。
它们可能会在某些库中出现,但它们不相关。如果您有一个具有异步API的事务数据库,您可以一起看到它们。
答案 1 :(得分:1)
<强>意图:强>
promise提供了一个用于同步异步回调的高级接口
事务提供了用于执行从属SQL语句的高级接口
使用案例
当应用程序需要未来值时,它会按需构造承诺并等待它返回。
当数据库需要执行一系列数据操作时,构造一个事务
错误处理
如果承诺引发异常,则返回异常并暂停未来
如果事务引发异常,则会对挂起的事务执行回滚
<强>突变强>
如果没有异常,则在将来的对象中返回计算值。
如果没有例外,则提交事务的最终结果集
<强>副作用强>
在事务块中,您可以将查询写入多个数据库,但在将查询写入另一个数据库之前,必须将事务提交或回滚到一个数据库。
将来,您可以为一个或多个全局变量或非局部变量赋值;没有提交或回滚
<强>污点强>
在执行并发SQL事务期间可能会发生读取。可能的读取操作包括:
在执行未来警告期间可能会发生分配或序列化
州管理
设置保存点可以回滚部分事务。例如,如果您的事务包括插入,更新和删除,并且您在更新后设置了保存点,则可以回滚事务以排除删除。
未来没有保存点
<强>参考强>
cftransaction
Understanding the Available Transaction Isolation Levels
Asynchronous Programming in JavaScript with Promises
How Transactional Replication Works
Transaction Process Synchronization
Optimistic Algorithm
Concurrency Control Algorithms
Configuring Serializable Isolation
Improving concurrency with new registry variables
Operating Systems Lecture Notes: Allocation and Deadlock
SQLite File I/O Specification
Broken promises–C++0x futures
concurrent.futures — Launching parallel tasks
Javascript Is Awesome: I don't want promises
JavaScript Asynchronous Architectures: Events vs. Promises
AS3 Promises - a guide and example
Smalltalk Concurrency, Playing With Futures
promise-streams
System.Threading.TTask.Future
Promises Part 5: The Lego Problem
Callbacks vs Events
Events and Callbacks
Events vs. Callbacks – when to use what
coroutines,callbacks,message-queues - Tcl
Introduction to ES6 Promises – The Four Functions You Need To Avoid Callback Hell
All about ES6 Generators
Chaining Difference in ES6 Promisies and PEP3148 Futures