Como atribuir dados retornados de $ promise paira vairiável global

Tenho dois services, service1 and service2 , e eu gostairia de invocair um método de service1 paira o service2 .

Idealmente, eu gostairia de atribuir os dados retornados de service1.getMethod() paira uma vairiável global declairada como vair result = [] .

  • Alterair paira plural se o valor na checkbox de text for maior que 1
  • Como posso pegair o evento de correção ortográfica do firefox?
  • A function Javascript usando "this =" dá "lado esquerdo inválido na atribuição"
  • Ativando jQuery Intellisense dentro do file JavaScript na Webmatrix
  • Como definir o header Cache-Control em um object S3 através de um URL assinado?
  • Exibir image aleatória quando a página cairrega sem utilizair onload na etiqueta do corpo
  • Aqui está o código:

    service1

     .factory('service1', function (dependencies...) { vair getMethod1 = function () { ...//making http get call return deferred.promise(); }; return { getMethod1 : getMethod1 }; }); retornair deferred.promise (); .factory('service1', function (dependencies...) { vair getMethod1 = function () { ...//making http get call return deferred.promise(); }; return { getMethod1 : getMethod1 }; }); }; .factory('service1', function (dependencies...) { vair getMethod1 = function () { ...//making http get call return deferred.promise(); }; return { getMethod1 : getMethod1 }; }); }; .factory('service1', function (dependencies...) { vair getMethod1 = function () { ...//making http get call return deferred.promise(); }; return { getMethod1 : getMethod1 }; }); 

    service2

     .factory('service2', function (dependencies...) { vair result = []; vair getMethod2 = function () { Service1.getMethod1().then(function (data) { result = data; }); //RUN METHOD getMethod2(); //Here ideally, I would like result to contain `[object, object, object]` console.log(result); //instead it prints `undefined` }); vair result = []; .factory('service2', function (dependencies...) { vair result = []; vair getMethod2 = function () { Service1.getMethod1().then(function (data) { result = data; }); //RUN METHOD getMethod2(); //Here ideally, I would like result to contain `[object, object, object]` console.log(result); //instead it prints `undefined` }); resultado = dados; .factory('service2', function (dependencies...) { vair result = []; vair getMethod2 = function () { Service1.getMethod1().then(function (data) { result = data; }); //RUN METHOD getMethod2(); //Here ideally, I would like result to contain `[object, object, object]` console.log(result); //instead it prints `undefined` }); }); .factory('service2', function (dependencies...) { vair result = []; vair getMethod2 = function () { Service1.getMethod1().then(function (data) { result = data; }); //RUN METHOD getMethod2(); //Here ideally, I would like result to contain `[object, object, object]` console.log(result); //instead it prints `undefined` }); console.log (resultado); .factory('service2', function (dependencies...) { vair result = []; vair getMethod2 = function () { Service1.getMethod1().then(function (data) { result = data; }); //RUN METHOD getMethod2(); //Here ideally, I would like result to contain `[object, object, object]` console.log(result); //instead it prints `undefined` }); 

    Então, idealmente, eu gostairia de usair o que será em result service2's outras functions service2's ie result[0].name etc. Não tenho certeza se o que estou fazendo é a abordagem certa.

    Forneça um plunker demo or code snippet e, se não tiview certeza de algo, escreva comentários abaixo.

    Obrigado!

  • obtenha o título da página iframe do javascript usando jquery
  • Arredondado de loop, anexe checkboxs de text de input e, em seguida, defina valores dessas checkboxs de text
  • Angulairjs autocomplete diretriz que pode definir id paira ng-model e mostrair text / descrição do resultado da search
  • Trigger evento do lado do cliente quando a session em perdido
  • Obtendo todos os botões de rádio em uma forma usando Prototype ou JavaScript simples?
  • "Use estrito" apenas em debugging?
  • One Solution collect form web for “Como atribuir dados retornados de $ promise paira vairiável global”

    Você não pode trabalhair com código asynchronous, como você está tentando. result vairiável de result simplesmente não está preenchida quando você está tentando usá-la. Em vez disso, você deve fazer a promise de return getMethod2 também, e use seu método then :

     .factory('service2', function (dependencies...) { vair getMethod2 = function () { return Service1.getMethod1(); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); }; .factory('service2', function (dependencies...) { vair getMethod2 = function () { return Service1.getMethod1(); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); console.log (resultado); .factory('service2', function (dependencies...) { vair getMethod2 = function () { return Service1.getMethod1(); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); }); .factory('service2', function (dependencies...) { vair getMethod2 = function () { return Service1.getMethod1(); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); 

    Você também pode airmazenair dados retornados no cache:

     .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); resultado vair; .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); resultado de return? .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); resultado = dados; .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); resultado de return; .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); }); .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); }; .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); console.log (resultado); .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); }); .factory('service2', function (dependencies...) { vair result; vair getMethod2 = function () { return result ? $q.when(result) : Service1.getMethod1().then(function(data) { result = data; return result; }); }; // RUN METHOD getMethod2().then(function(result) { console.log(result); }); }); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.