异步处理肯导致next(err)引发can't set header after they are sent.
发布于 1年前 作者 yybcjq 825 次浏览

Express中,比如我有5个item要操作,即有一个items.length=5。 用如下代码: items.forEach(function(item){ DB.deal(item, function(err){ if(err) return next(err); }); }); OK,我的问题是,这样如果有>1个item处理失败,就会两次调用next,如果我在错误处理里面是resonpse一个错误页面之类的,岂不是会引发标题中所诉的错误。大家这种情况是怎么处理的? res有没有一个参数,能够让我在错误处理中判断res是否还有效,无效的情况下就不再给调用res.response~~~给客户端。

4 回复

可以考虑用eventproxy类似的模块去处理。

请问能不能像我说的,在错误处理里面我可以有res.isOpen()之类的途径让我知道是否先前是否已经有过响应输出?

@yybcjq你可以看看eventproxy。

回到顶部