nodejs如何判断数据库操作是不是执行完毕

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs如何判断数据库操作是不是执行完毕相关的知识,希望对你有一定的参考价值。

参考技术A 判断如下:
将运行结果用arr.length来判断,如果arr.length不像我们期望的那样,比如由于网络传输或者处理异常,少一条,那么我们将无法做后续的处理。这种处理方式强业务耦合;不具有普适性。taskWatcher 充当异步任务执行情况的观察员,仅与异步过程的调用次数有关,且与其他处理过程无关。方法返回一个 Promise, 它将在上述可迭代对象中的所有 Promise 被 resolve 之后被 resolve,或者在任一 Promise 被 reject 后被 reject。

如何判断线程池中的线程是否全部执行完毕

在使用多线程执行任务的时候,在某些场景下需要判断线程池中所有线程是否都已执行完毕,例如:我有个方法的功能是往一个文件异步地写入内容,我需要在所有的子线程写入完毕后在文件末尾写“---END---”及关闭文件流等,这个时候我就需要某个标志位可以告诉我是否线程池中所有的子线程都已经执行完毕。下面我总结了两种方式来判断。

第一种方式:使用Semaphore

Semaphore简介:

Semaphore,是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类。

所谓Semaphore即 信号量 的意思。

这个叫法并不能很好地表示它的作用,更形象的说法应该是许可证管理器。

其作用在JDK注释中是这样描述的:

A counting semaphore. 
Conceptually, a semaphore maintains a set of permits. 
Each @link #acquire blocks if necessary until a permit is available, and then takes it. 
Each @link #release adds a permit, potentially releasing a blocking acquirer. 
However, no actual permit objects are used; the @code Semaphore just keeps a count of the number available and acts accordingly.

翻译过来,就是:

Semaphore是一个计数信号量。
从概念上将,Semaphore包含一组许可证。
如果有需要的话,每个acquire()方法都会阻塞,

以上是关于nodejs如何判断数据库操作是不是执行完毕的主要内容,如果未能解决你的问题,请参考以下文章

Java如何判断线程池所有任务是不是执行完毕

Java如何判断线程池所有任务是不是执行完毕

线程池判断是不是执行完毕

如何判断网页是不是加载完毕

nodejs MySQL操作

请教如何判断shell已经执行完毕