我在Nodejs上遇到问题,我只需要调用一次函数 item.IS_RACING === 1
看
_.map(recordsets, function(items) { return _.map(items, function(item) { if (item.IS_RACING === 1) { _this.getRacing(); } }); });
我_this.getRacing();
有条件的每次调用true
,但如果有20个项目IS_RACING === 1
,所以该函数_this.getRacing();
将被调用20次.我需要类似的东西,一旦应用程序检测到第一个IS_RACING === 1
出现时,然后_this.getRacing();
只触发一次.
有什么建议?
正如评论中Pointy
指出的那样(抱歉),你真的不想用map()
它来做这件事.
从如何向其他开发人员解释问题的角度考虑问题.
如果任何记录集中有一个赛车项目,我想打电话
getRacing()
.
现在,编写代表您意图的代码.
var somethingIsRacing = _.some(recordsets, function(items) { return _.some(items, function(item) { return item.IS_RACING === 1; }); }); if(somethingIsRacing) { _this.getRacing(); }
此代码遵循称为命令查询分离的原则,您首先使用函数式编程查询查找所需信息,然后使用命令式编程样式执行具有副作用的操作.