我在PHP中有以下代码(逻辑):
$fp = fopen('fp.txt', 'w');
if ($msg == 'say') {
fwrite($fp, 'Hello world!');
}
$msg = 'done';为了将其转换为异步事件驱动的代码,“node开发人员”的作者建议我这样重构它。
$fp = fopen('fp.txt', 'w');
if ($msg == 'say') {
fwrite($fp, 'Hello world!');
$msg = 'done';
} else {
$msg = 'done';
}然后,
fs.open('fp.txt', 'w', 0666, function(error, fp) {
if (msg == 'say') {
fs.write(fp, 'Hello world!', null, 'utf-8', function() {
msg = 'done';
});
} else {
msg = 'done';
}
});你会清楚地看到,有代码重复。‘'msg =“is”是重复的。这能避免吗?代码复制是错误的做法,对吗?
事件驱动编程总是这样吗?
发布于 2013-09-13 02:32:49
如下所示:
var done = function() {
msg = 'done';
};
fs.open('fp.txt', 'w', 0666, function(error, fp) {
if (msg == 'say') {
fs.write(fp, 'Hello world!', null, 'utf-8', done);
} else {
done();
}
});https://stackoverflow.com/questions/18777342
复制相似问题