请教一个操作数据库的异步问题 如题,请问各位大大:
我现在有一个数据库的操作,封装在一个函数例如myfunc里面,执行myfunc会往数据库插入数据,现在有一个程序段代码大概如下:
==================================================================== //代码段如下:
myfunc( someData); //往数据库插入data数据, 数据较多,会执行很多次插入操作,且耗时较久
/* 紧接着myfunc的一些代码*/
............
............
response.write('xxxxx')
====================================================================
请问: 在不使用数据库的回调函数的操作下,如何让myfunc后的代码在myfunc执行后才执行?
myfunc的代码可以类似以下:
function myfunc( someData){
/* 省略处理代码 */
for( /*循环条件*/ ){
mysql.query(' INSERT INTO XX (field1, field2) VALUES( xx, yy ) ',
function(err,ret){ }
);
}
}
10 回复
如果是用回调的话,又不影响现有代码的执行顺序,请问有什么法子? 我想用一个变量做标识, 请问可行不?
我现在尝试了把myfunc封装到一个类里,再继承系统的Emitter类, 然后在数据库的回调函数里注册事件,但是这样只能标识一次数据库操作是否结束,无法判断全部操作是否结束