2017-05-31 3 views
0

Ich versuche, ein paar Funktionen, die eine Rest-API aufrufen, um eine ID zu erhalten und dann diese ID zu einer anderen API zu veröffentlichen und Im schlagen wichtige Roadblocks. Ich habe Callbacks und Versprechungen ausprobiert, aber ohne Erfolg, die erste Funktion, die ich benutze, um die ID anzufordern, wird nicht ausgeführt, bevor die zweite die $ -Post nicht schafft. Ich habe auf setTimout zurückgegriffen, das aussieht, als könnte es das Problem lösen, aber aus irgendeinem Grund kann ich keine andere Funktion innerhalb der Timer-Funktion aufrufen. Könnt mir bitte jemand Bescheid sagen wo ich hier schief gehe Danke für die Hilfe im Voraus!Aufruf von JavaScript-Funktion aus der Timer-Funktion in Cordoba

var timerVariable; 

this.placeNewOrder = function(){ 
    this.newOrder(); 
    timerVariable = setTimeout(this.orderTimer, 1000); 
}; 

this.newOrder = function(){ 
    //code to set currentOrderId 
    return currentOrderId 
    alert("got Id"); 
}; 

orderTimer = function(){ 
    this.postOrderItems();//this call never seams to call the function 
}; 

this.postOrderItems = function(){ 
    alert("postOrderItems called");//, orderId: " + currentOrderId); 
    //code to $post in here 
}; 
+0

Ich vermute, 'this' ist nicht das, was Sie denken, es ist, wenn die Methode über' setTimeout' aufgerufen wird. Sie können den Kontext der Funktion festlegen, wenn Sie 'apply' verwenden. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply –

Antwort

1

Die Art und Weise des Kontext innerhalb orderTimer zu halten, ist es zu binden:

timerVariable = setTimeout(this.orderTimer.bind(this), 1000); 

Welche das unmittelbare Problem löst das Sie haben, ist aber ein falscher Weg, um Ihr ursprüngliches Problem zu lösen.

+0

Schöne Anmerkung über den Ansatz auch falsch. –

+0

Erstaunlich danke! Ich habe das "Dies" verpasst. in der orderTimer-Funktion oben auch aber entdeckt, dass es zur gleichen Zeit, es funktioniert ein Leckerbissen jetzt danke! – dorian

Verwandte Themen