在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

回到顶部