2016-09-20 85 views
0

我該如何構造它以返回多個值(消息和名稱),並且能夠在js.html文件中訪問它們?返回多個值並訪問它們?

 

- 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); 
} 

編輯:

我已經解決了這個問題。謝謝大家的幫助和信息。這是我改變了:http://pastebin.com/Ci1e8ZWx

+2

你可以r將它作爲一個數組或作爲一個對象來修飾它。 – Karpak

+1

返回一個對象,如'{message:message,name:name}' – CoderLim

+0

@CoderGLM我將如何在openSuccess函數中訪問它? – user4411473

回答

1

函數只能返回一個值。

所以要做到這一點的方法是將它們包裝在一個數組或對象中。

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; 
} 

使用結果:

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

另外,您可以使用一個對象,基本上通過使用對象做任何你想做 :

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; 
} 

使用:

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

我嘗試了與對象的第二種方式,但是我得到'Uncaught ReferenceError:createArtistTable is not defined'。 http://pastebin.com/cLbD5bWS – user4411473

+0

它聽起來好像找不到功能。在嘗試使用它返回內容之前,你能夠調用該函數嗎? –

+0

它在一個單獨的文件中。我用openArtistTable函數調用了它,然後它應該返回從createArtistTable返回的內容openSuccess – user4411473