Tag: 谓词

从嵌套的asynchronous函数调用中返回谓词

我需要过滤一个数组,取决于从外部API中获取数据所获得的每个元素的子元素是否与条件匹配。 代码可能比解释更清晰: //Suppose there is an array filled //_.filter(array, predicate) var filtered_array = _.filter(array,function(element){ //Async operation webservices.doStuff(element, function(sub_element){ //This return is meant for the filter, but returns on .doStuff callback return sub_element.thing === "ok"; }); }); 这里的问题是我不知道如何返回谓词的结果,因为webservices.doStuff是asynchronous的! 任何想法?

什么样的Javascript库可以评估对象的MongoDB-like查询谓词?

是否有一个JavaScript库,将允许我在类似于MongoDB的查询语言的DSL中表示对象谓词? 为了清晰起见,我希望能够说: var obj = { a: 1, b: 'abcdefg' }, qry = { a: { $gt: 0 }, b: /^abc/ }; if(query(qry).matches(obj)) { // do something appropriate since } 代替: var obj = { a: 1, b: 'abcdefg' }; if(obj.a>0 && qry.b.test(obj.b)) { // do something appropriate } 我正在使用Node.js,所以NPM上的任何东西都会很棒。 如果库可以从数组中select对象以及匹配单个对象,那将是额外的好处。 我回顾了这两个相关的问题,但是他们对我的情况并没有特别的帮助: 实现goMongoDB-like查询expression式对象评估 在PHP中评估类似MongoDB的JSON查询