我是节点js的新手,我试图在这样的节点js中设置一些变量
var perm1 = 0;
var perm2 = 0;
check_tasksAssigned(data,function(resp1) {
perm1 = resp1;
});
check_projectMembers(data,function(resp2) {
perm2 = resp2;
});
if(perm1 && perm2) {
// do some db stuff here
}
但是我得到了未定义的东西。我也试过这样,
var perm1 = check_tasksAssigned(data,function(resp1) {
});
var perm2 = check_projectMembers(data,function(resp1) {
});
if(perm1 && perm2) {
// do some db stuff here
}
并且尝试过这样,但结果在所有情况下都是一样的。
var perm1 = check_tasksAssigned(data);
var perm2 = check_projectMembers(data);
if(perm1 && perm2) {
// do some db stuff here
}
请帮我解决这个问题。
提前致谢
答案 0 :(得分:5)
欢迎使用异步编程:)
最好的方法是使用promises库。但是短版可能看起来像:
clean_data = json.loads(json_data.read())
del clean_data[your_key]
with open(your_file_to_write, 'w') as f:
f.write(json.dumps(clean_data))
修改
根据请求,使用promises,此代码看起来像:
var perm1 = 0;
var perm2 = 0;
check_tasksAssigned(data,function(resp1) {
perm1 = resp1;
finish();
});
check_projectMembers(data,function(resp2) {
perm2 = resp2;
finish();
});
function finish() {
if(perm1 && perm2) {
// do some db stuff here
}
}
但是有很多方法可以表达这一点,具体取决于确实的承诺库等。