2016-09-20 89 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