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

Bài đăng phổ biến từ blog này

Align div to bottom of the page in bootstrap

Align elements inside an tag vertically

Javascript is unable to stop page loading