首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件驱动编程.非线性代码

事件驱动编程.非线性代码
EN

Stack Overflow用户
提问于 2013-09-13 02:30:41
回答 1查看 241关注 0票数 0

我在PHP中有以下代码(逻辑):

代码语言:javascript
复制
$fp = fopen('fp.txt', 'w');
    if ($msg == 'say') {
        fwrite($fp, 'Hello world!');
    }
$msg = 'done';

为了将其转换为异步事件驱动的代码,“node开发人员”的作者建议我这样重构它。

代码语言:javascript
复制
$fp = fopen('fp.txt', 'w');
if ($msg == 'say') {
    fwrite($fp, 'Hello world!');
    $msg = 'done';
} else {
    $msg = 'done';
}

然后,

代码语言:javascript
复制
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”是重复的。这能避免吗?代码复制是错误的做法,对吗?

事件驱动编程总是这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-13 02:32:49

如下所示:

代码语言:javascript
复制
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();
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18777342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档