2016-09-20 3 views
0

Wie würde ich dies strukturieren, um mehrere Werte (Nachricht und Name) zurückzugeben, und in der Lage sein, auf sie in der Datei js.html zuzugreifen?Mehrere Werte zurückgeben und darauf zugreifen?

 

- code.gs

function createArtistTable(name) 
{ 
    var message = "test"; 

    //return message and name 
} 

- js.html

function openArtistTable(name) 
{ 
    google.script.run 
     .withSuccessHandler(openSuccess) 
     .withFailureHandler(openFailure) 
     .createArtistTable(name) 
} 

function openSuccess(//have 2 values here -- var1, var2) 
{ 
    console.log(var1); 
    console.log(var2); 
} 

EDIT:

Ich habe das Problem behoben. Vielen Dank für die Hilfe und Informationen. Das habe ich geändert: http://pastebin.com/Ci1e8ZWx

+2

Entweder Sie können r Wende es als ein Array oder als ein Objekt an. – Karpak

+1

Rückgabe eines Objekts wie '{Nachricht: Nachricht, Name: Name}' – CoderLim

+0

@CoderGLM Wie würde ich darauf in der openSuccess-Funktion zugreifen? – user4411473

Antwort

1

Eine Funktion kann nur einen Wert zurückgeben.

Der Weg, dies zu tun ist, sie in einem Array oder Objekt zusammen zu wickeln.

function return2Vals() 
{ 
    var var1; 
    var var2; 
    //Code that does stuff with var1 and var2 
    /// 
    /// 
    //Create an array with the values and return it. 
    var results = [var1, var2]; 
    return results; 
} 

Mit dem Ergebnis:

var vals = return2Vals(); 
console.log("One of the return values is:", vals[0]); 
console.log("The other return value is:", vals[1]); 

Alternativ können Sie ein Objekt verwenden, und im Grunde tun, was Sie wollen, indem ein Objekt mit:

function returnSomeValsAsObj() 
{ 
    var var1; 
    var var2; 
    //Code that does stuff with var1 and var2 
    /// 
    /// 
    //Create an object with the values and return it. 
    var results = {primary_result: var1, secondary_result: var2, accompanying_message: "some message"}; 
    return results; 
} 

Verwendung:

var results = returnSomeValsAsObj(); 
console.log(results.primary_result); 
console.log(results.secondary_result); 
console.log(results.accompanying_message); 
+0

Ich habe den zweiten Weg mit dem Objekt versucht, aber ich bekomme 'Uncaught ReferenceError: createArtistTable ist nicht definiert'. http://pastebin.com/cLbD5bWS – user4411473

+0

Es klingt wie es die Funktion nicht finden kann. Konnten Sie die Funktion aufrufen, bevor Sie versucht haben, die Funktion zurückzugeben? –

+0

Es ist in einer separaten Datei. Ich habe es mit der openArtistTable-Funktion aufgerufen und dann sollte es zurückgeben, was ich von createArtistTable an openSuccess zurücksende – user4411473

Verwandte Themen