在Node.js中锁定承诺链接
我有一个REST API,它会一个接一个地执行一系列异步任务。代码如下所示:在Node.js中锁定承诺链接
asyncFunc1() .then(asyncFunc2())
.then(asyncFunc3())
.then(asyncFunc4())
第一步将执行一些数据库查询,最后一步将更新数据库。当然(因为我来自java/c + +背景),我会在我的承诺链的开头添加一个锁,以确保与数据库的交互受到保护。
但我是新来的Node.js和它的异步处理单线程模式困惑我在这里。因此,我应该在每个涉及数据库操作的步骤中添加一个锁,在我的承诺链的开头链接或添加锁,或者我根本不需要锁?
-------- ---------更新
正如一位评论和答复指出了这一点,我写我的错链(我的实际代码是正确的,虽然,只是一个签署表明我是新来的Node.js:$)
asyncFunc1() .then(asyncFunc2)
.then(asyncFunc3)
.then(asyncFunc4)
其实我在我的链的开头使用Redlock,我不知道这是一个好主意。拉胡尔辛格提供的答案表明我不需要锁定!
回答:
当您使用新的承诺承诺()被调用,因此所有 你的函数为您创建它们,而不是当你 连锁它们实际上被执行。
您链功能应该像
asyncFunc1().then(asyncFunc2).then()...
的asyncFunc1应该是返回一个承诺,而不是一个承诺本身的功能。
诺兰劳森就以承诺一脸这article更多
以上是 在Node.js中锁定承诺链接 的全部内容, 来源链接: utcz.com/qa/259752.html