javascript - Having trouble defining httpResponse in callback function -
javascript - Having trouble defining httpResponse in callback function -
i'm using promise create httprequest functions every instance of matchcenteritem
, force them in array, run them in row. want collect httpresponse of every 1 of these functions, , force them ebaypingresults
array. when run this, error stating following:
failed with: typeerror: cannot read property 'text' of undefined @ collectebayresults (main.js:444:57) @ null.<anonymous> (main.js:450:15) @ e (parse.js:2:5101) @ c.extend.then (parse.js:2:5447) @ main.js:439:40 @ e (parse.js:2:5101) @ parse.js:2:4651 @ array.foreach (native) @ object.x.each.x.foreach [as _arrayeach] (parse.js:1:665) @ c.extend.resolve (parse.js:2:4602)
the line it's referring this: var httpresponse = json.parse(httpresponse.text);
here's total code:
parse.cloud.define("matchcentertest", function(request, response) { //defines parse class iterate through var matchcenteritem = parse.object.extend("matchcenteritem"); var query = new parse.query(matchcenteritem); var promises = []; //setting limit of items @ 10 query.limit(10); query.find().then(function(results) { (i=0; i<results.length; i++) { console.log(results[i].get('searchterm')) url = 'http://svcs.ebay.com/services/search/findingservice/v1'; //push function containing criteria every matchcenteritem promises array promises.push(function() { homecoming parse.cloud.httprequest({ url: url, params: { 'operation-name' : 'finditemsbykeywords', 'service-version' : '1.12.0', 'security-appname' : '*app id goes here*', 'global-id' : 'ebay-us', 'response-data-format' : 'json', 'rest-payload&sortorder' : 'bestmatch', 'paginationinput.entriesperpage' : '3', 'outputselector=aspecthistogram&itemfilter(0).name=condition&itemfilter(0).value(0)' : results[i].get('itemcondition'), 'itemfilter(1).name=maxprice&itemfilter(1).value' : results[i].get('maxprice'), 'itemfilter(1).paramname=currency&itemfilter(1).paramvalue' : 'usd', 'itemfilter(2).name=minprice&itemfilter(2).value' : results[i].get('minprice'), 'itemfilter(2).paramname=currency&itemfilter(2).paramvalue' : 'usd', //'itemfilter(3).name=locatedin&itemfilter(3).value' : request.params.itemlocation, 'itemfilter(3).name=listingtype&itemfilter(3).value' : 'fixedprice', 'keywords' : results[i].get('searchterm'), } }); }); } console.log(promises); parse.promise.when(promises).then(function(results){ var ebaypingresults = []; function collectebayresults (httpresponse){ var httpresponse = json.parse(httpresponse.text); ebaypingresults.push(httpresponse); } (i=0; i<promises.length; i++) { collectebayresults(httpresponse); } console.log(ebaypingresults); response.success( { "top 3": ebaypingresults } ); }, function(err) { console.log('error!'); response.error('damn man'); }); }); });
i've written previous function referenced httpresponse in way success function, , worked fine, not sure why it's not working in case.
javascript json parse.com httprequest httpresponse
Comments
Post a Comment