我有一个与数据库集成的函数,但在此之前,我有一个进行一些检查的函数:
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
中启动异步过程,因此没有任何允许的余地。