nodeJS でいくつかの関数をシリアル化する際に問題が発生しています。私がやりたいことは、一時的なビューを作成し、それを読み取ってから、ft 配列の各要素に対してドロップすることです。これが私のコードです。NodeJSで次の関数を使用しています。Db はノード用の sqlite3 プラグインです。
function(){
ft.forEach(function(fti){
var view="create temporary view ..."+fti;
db.exec(view,aftaView)
console.log("created View "+fti);
});
};
function aftaView(err){
if (err) console.log(err+" K ");
participantID.forEach(function(prt){
Obj.forEach(function(bj){
console.log("Object: "+bj);
//perform second query here
db.all("select ...", {$pID:prt,$obj:bj}, function(err,rows){
if (err) throw err;
rows.forEach(function (row) {
//console.log(row);
});
//perform third function here, in readiness for second iterarion of the very // first loop
db.run("drop view Kemp");
});
});
});
};
コンソール出力は次のとおりです。
created View 1
created View 2
created View 3
created View 4
created View 5
created View 6
//fails
Error: SQLITE_ERROR: view already exists
最初のループの各項目に対して 2 番目の関数が実行されるようにする必要があることは明らかですが、方法がわかりません。どんな助けでも大歓迎です