<分区>
我知道在 javascript 中对象是通过引用复制的,但这很奇怪。
var project = projects[projectIndex];
var projectName = project[0]["repository"]["name"];
console.log("type" + " of name " + projectName + " in " + ownerFolderName);
projectTasks.push(function(callback){
omnifocus.create_folder_if_possible_in_group(projectName, ownerFolderName, function () {
callback();
});
});
在这个片段中循环运行多次。使用 console.log
记录时,projectName
是正确的。但是,当在匿名函数中使用时(在 projectTasks
中),该值始终与最后一项的值相同。
例如:如果循环三次,它将记录“1”、“2”、“3”(这是正确的)。但是,在匿名函数中,它会以“3”值运行 3 次。
完整代码可在此处获得:https://github.com/gcamp/github-omnifocus-sync/blob/master/index.js