Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析云代码-承诺问题_Javascript_Parse Platform_Promise_Underscore.js_Parse Cloud Code - Fatal编程技术网

Javascript 解析云代码-承诺问题

Javascript 解析云代码-承诺问题,javascript,parse-platform,promise,underscore.js,parse-cloud-code,Javascript,Parse Platform,Promise,Underscore.js,Parse Cloud Code,这是我的密码 Parse.Cloud.define('filters', function(request, response){ var _ = require('underscore'); var customerGeoPoint = request.params.geolocation; var rating = request.params.rating var finalList = []; // var arr = []; var promises = []; var query

这是我的密码

Parse.Cloud.define('filters', function(request, response){
var _ = require('underscore');
var customerGeoPoint = request.params.geolocation;
var rating = request.params.rating

var finalList = [];
// var arr = [];
var promises = [];
var query = new Parse.Query('ServiceProvider');
query.withinMiles("geoLocation", customerGeoPoint, 10);

query.find().then(function(spobjs){
  return spobjs
}).then(function(newval){   
   var query2 = new Parse.Query('Customer');
   for(i in newval){
     query2.withinMiles('geoLocation', newval[i].get('geoLocation'), newval[i].get('serviceRadius'));
     var sp = query2.first()
       if(sp != null)
       {
         finalList.push(newval[i]);
       }
   }
   return finalList ;
}).then(function(resval){
    var arr = [];
    var arr = _.sortBy(resval,'averageRating'); ** This Line doesn't work **
    console.log(arr[0]);
    return arr ;
}).then(function(checkval){

    response.success(checkval);

},function(error){
    // console.log(error);
    response.error(error);
});

});

在上面的代码中,读取“thislinedostwork”的行没有任何作用。我需要
下划线.js
,但它仍然没有对数组进行排序
finalList
值返回到
承诺
后,但它不会对其排序,并返回与
finalList
相同的值。有人能告诉我这段代码有什么问题吗?

当使用下划线对解析对象进行排序时,迭代对象必须使用
get()
返回属性值

var arr = _.sortBy(resval, function(o) { return o.get('averageRating'); });

谢谢你,伙计!它现在可以工作了:)。这个迭代只适用于带parse?的下划线JS中的sort或其他函数,很高兴能提供帮助。在任何地方,当您将解析对象数组传递给下划线函数,并且该函数提供了一个很好的属性名快捷方式来代替iteratee时,您都会陷入编写iteratee函数的困境,因为下划线不知道您真正传递的是主干对象。