2016-11-26 2 views
-1

ich folgende Funktion in AngularJS erstellt haben

 var enq_dt = new Date(); 

     $.post("/api/EMSAPI/EnquiryDetails?enq_no="+o_enq_no, null, function (returnedData) { 
      enq_dt = returnedData["D_O_O"]; 
      console.log("Loading Post Block"); 
      console.log(enq_dt); 
     }); 


     console.log("Loading General Block "); 
     console.log(enq_dt); 
     $scope.CurrentQuotation = { 
      EnquiryNo:o_enq_no, 
      EnquiryDate: enq_dt, 
      QuotationBy:"TEST" 
     }; 

ich folgendes Ergebnis in Konsolenfenster zu bekommen. Laden Allgemeine Gruppen 2010-11-26T00: 00: 00 Laden Beitrag Block- 2010-12-12T00: 00: 00


Ich möchte Beitrag Block zuerst laden und danach möchte ich Allgemein laufen Block.

Was ich vermisse (ich bin neu in Angular)?

Vielen Dank im Voraus.

+0

Mögliche Duplikat [? Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren] (http://stackoverflow.com/questions/14220321/how-do-i-Return-die-Antwort-von-einem-asynchronen Anruf) –

Antwort

0

Ich empfehle Ihnen Google das Wort "asynchron". In JavaScript sind Dinge wie HTTP-Anfragen fast immer asynchron.

Um Ihren allgemeinen Code zu erhalten nach der Post zu laufen, rufen Sie es mit .then():

function generalCode() { 
    console.log("Loading General Block "); 
    console.log(enq_dt); 
    $scope.CurrentQuotation = { 
     EnquiryNo:o_enq_no, 
     EnquiryDate: enq_dt, 
     QuotationBy:"TEST" 
    }; 
} 

var enq_dt = new Date(); 

$.post("/api/EMSAPI/EnquiryDetails?enq_no="+o_enq_no, null) 
    .then(function (returnedData) { 
     enq_dt = returnedData["D_O_O"]; 
     console.log("Loading Post Block"); 
     console.log(enq_dt); 
    }) 
    .then(generalCode); 
+0

Vielen Dank für die Antwort .. Ich habe nach Ihrem Vorschlag angewendet ... aber das Ergebnis ist das gleiche. –

Verwandte Themen