私はthisを読んで、データを元に戻すことはできませんが、それは私とは機能しません。Javascriptコールが参照できない
私は、データを追加するために、それらを別の関数に1つずつ送信するオブジェクトの配列を持っています。 sectionProjects
のそれぞれについて
queries.first(finalObject.sectionProjects[i]);
、変数achievements
は、空の配列です。
the queries.first
関数に各sectionProjectを送信すると、私は実績、
finalObject.sectionProjects[i].achievements = something else
私はqueries.first関数から戻ったとき、私は私が追加されたデータを失うことを再割り当て。 何か間違っていますか?
module.exports = {
first:function(aProject) {
// Latest achievements
var query =
" SELECT ta.description, ta.remarks, ta.expectedECD " +
" FROM project pr, task ta, milestone mi " +
" WHERE pr.ID = mi.project_ID AND mi.ID = ta.milestone_ID " +
" AND ta.achived = ta.percent AND pr.ID = " + aProject.project_id +
" ORDER BY pr.expectedECD " +
" LIMIT 5;"
;
var stringified = null;
pmdb.getConnection(function(err, connection){
connection.query(query, function(err, rows){
if(err) {
throw err;
}else{
var jsonRows = [];
for(var i in rows) {
stringified = JSON.stringify(rows[i]);
jsonRows.push(JSON.parse(stringified));
}
connection.release();
aProject.achievements = jsonRows;
upcomingTasks(aProject);
}
});
});
}
}
これはpmdb.js:
// ...Code...
//Number of section projects
var len = jsonRows.length;
console.log("Number of section projects: " + len);
var internal_counter = 0;
function callbackFun(i){
(finalObject.sectionProjects[i]).achievements = [];
queries.first(finalObject.sectionProjects[i]);
if(++internal_counter === len) {
response.json(finalObject);
}
}
var funcs = [];
for (var i = 0; i < len; i++) {
funcs[i] = callbackFun.bind(this, i);
}
for (var j = 0; j < len; j++) {
funcs[j]();
}
'queries.first'を共有する必要があります。どのように実装されていますか?非同期ですか? –
アチーブメントを割り当てる関数を投稿してください。だから私はデバッグすることができます。また、フィドル – murli2308
あなたの機能はokと思われます。あなたのコードをデバッグするために投稿する。より良い理解のために完全なコードを投稿してください。 – murli2308