Javascript return function issue returning object
<p>I'm using google npm package to return some search results in an angular service. I guess I don't understand anything because I can't seem to pass back the results from the google search function to my service to return it to my controller.</p><p>I'm trying to set the var results = google function return. That way I can parse the search into a json object and return it to my service and then return it to my controller for display.</p><p>the var results is always undefined</p><p>Console Output</p><pre><br /><code>RESULTS<br />search-service.js:43 undefined<br />controller.js:88 undefined<br />annyang-service.js:32 End undefined<br />search-service.js:22 [Object, Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object, Object]<br />search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object, 4: Object}<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:22 [Object, Object, Object, Object]<br />search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}<br />2annyang-service.js:32 End undefined<br /></code><br /></pre><p>CODE</p><pre><br /><code>(function() {<br /> 'use strict';<br /><br /> function SearchService($window, $http, $rootScope, $q) {<br /> var service = {};<br /> service.events = [];<br /> var google = require('google');<br /> google.resultsPerPage = 4;<br /> var nextCounter = 0;<br /> var results = {}; <br /> service.Search = function(searchString) {<br /><br /> console.log(searchString);<br /><br /> results = google(searchString, function (err, next, links){<br /> var json_return = {};<br /> var json_search_string = "{";<br /><br /> for (var i = 0; i <= links.length - 1; ++i) {<br /> var description_fixed = links[i].description.toString().replace(/(\r\n|\n|\r)/gm,'');<br /><br /> description_fixed = description_fixed.replace(/"/g, ""); <br /><br /> console.log(links);<br /><br /> if(i != links.length - 1){ <br /> json_search_string +='"'+i.toString() + '":{ "title":" ' + links[i].title + '" , "link":"' + links[i].link + '" , "description":"' + description_fixed + '" },'; <br /> }else{ <br /> json_search_string +='"'+i.toString() + '":{ "title":" ' + links[i].title + '" , "link":"' + links[i].link + '" , "description":"' + description_fixed + '" }';<br /> } <br /> } <br /><br /> json_search_string += "}";<br /><br /> if (nextCounter < 4) {<br /> nextCounter += 1;<br /> if (next) next()<br /> }<br /><br /> json_return = JSON.parse(json_search_string); <br /> console.log(json_return);<br /> return json_return <br /><br /> });<br /> console.log("RESULTS");<br /> console.log(results);<br /> }<br /> return service<br />}<br /> angular.module('Diddo')<br /> .factory('SearchService', SearchService);<br /><br />}());<br /></code><br /></pre><p>My controller directive</p><pre><br /><code> AnnyangService.addCommand('Google *term', function(term) {<br /> console.log("executing search");<br /> $rootScope.search_string = term.toString();<br /> var results = SearchService.Search($rootScope.search_string);<br /> console.log(results);<br /> });<br /></code><br /></pre><br /><h2>Click here view more answers <a href="http://ift.tt/1oZxvmY">http://ift.tt/1oZxvmY</a></h2>
Nhận xét
Đăng nhận xét