我有一个与数据库集成的函数,但在此之前,我有一个进行一些检查的函数:

function checkVars (a, b){
   if (a.a1 !== b.b1){
          b.b1 = a.a1;
   }
   // and other 4 vars
 }


之后,我有一个将数据插入数据库的功能。

如何确定我的代码要在数据库函数之前执行比较函数?

我正在使用回调,但是没有回调有可能吗?

最佳答案

我如何确定我的代码之前要执行比较功能?


假设您有:

checkVars(something, somethingElse);
doDatabaseWork();


...您知道checkVars将被调用,并且将在调用doDatabaseWork之前运行完毕。由于checkVars同步完成所有工作(它不会启动任何异步进程),因此它在调用doDatabaseWork之前运行完成的事实意味着其所有工作都在doDatabaseWork之前完成。仅当checkVars启动异步进程时,您需要允许该进程在checkVars返回时尚未完成(并通过回调,直接调用或通过promise处理)。但是您所描述的内容不会在checkVars中启动异步过程,因此没有任何允许的余地。

07-26 02:30