2017-01-09 56 views
0

我有了我的数据库集成的功能,但在此之前,我有一个功能,做一些检查:怎么看asynchronity没有回调节点

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

这之后,我有一个函数插入数据进入我的数据库。

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

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

+0

只需先调用你的'checkVars()'。它不会执行任何异步操作,所以应该没有问题。 – nnnnnn

+0

你为什么不尝试一下?此外,你想删除哪个回调?我的例子中没有看到一个。 – moffeltje

回答

3

我该如何确定我的代码要执行比较函数?

假设你有:

checkVars(something, somethingElse); 
doDatabaseWork(); 

...你知道checkVars将被调用,将运行完doDatabaseWork被调用之前。由于checkVars同步执行所有工作(它不启动任何异步进程),因此在doDatabaseWork之前运行完成的事实意味着所有工作都在doDatabaseWork之前完成。只有当checkVars启动一个异步进程时,当checkVars返回(并通过回调,直接或通过承诺处理它)时,您需要允许该进程尚未完成。但是你所描述的并不是在checkVars中启动一个异步过程,所以没有什么可以允许的。