在HtmlService docs async sample code ...HtmlService異步加載示例代碼
如何參數things
得到傳遞給函數showThings(things)
在頁面加載後?
按原樣運行,html列表被清空。
在我Code.gs,我在...
function getLotsOfThings() {
return [1,2,3];
}
添加,但它沒有通過或存儲結果,以便showThings()
可以使用它。
在HtmlService docs async sample code ...HtmlService異步加載示例代碼
如何參數things
得到傳遞給函數showThings(things)
在頁面加載後?
按原樣運行,html列表被清空。
在我Code.gs,我在...
function getLotsOfThings() {
return [1,2,3];
}
添加,但它沒有通過或存儲結果,以便showThings()
可以使用它。
內置google.script.run
爲我們做到了這一點。
您可以認爲Apps Script平臺通常在客戶端獲取您的服務器端函數JSON.stringify
然後JSON.parse
的返回值。而且由於withSuccessHandler
收到你的返回函數,運行它並傳遞參數很容易。由於shown by Frits。
這裏是什麼withSuccessHandler
documentation說:
因爲客戶端代碼繼續到下一行,而不必等待 一個服務器調用來完成,google.script API允許你指定 另一個客戶端當服務器響應時運行端功能。 如果服務器函數返回值,則API將該值作爲參數傳遞給新函數 。
順便說一下,代碼示例對我來說工作得很好。你有什麼問題嗎?這是我使用的代碼(加上例如確切的html文件,我把它叫做「頁」):
function doGet() {
return HtmlService.createHtmlOutputFromFile('page');
}
function getLotsOfThings() {
return [1,2,3];
}
正在使用'createTemplateFromFile()'並且缺少不可見的API傳遞概念。 –
'createTemplateFromFile'也應該可以工作。這是沒有必要的,因爲沒有什麼可以評估的HTML例子。實際上,這是做異步工作的主要想法。當使用「createOutput ...」而不是「createTemplate ...」時,相同的頁面加載速度會更快,特別是因爲它可以緩存調色板部分,而不必每次都重做(創建模板時無法避免) 。 –
我認爲這可能是一個錯誤。
它仍然可以工作,雖然,看到這個例子:從它不是什麼明顯的things
值雖然,或它來自哪裏代碼
function foo(arg) {
console.log(arg);
}
function run(callback) {
callback("bar");
}
run(foo); // "bar"
。
是的,我試圖找出'東西'來自哪裏或假設是 –
工作正常,我 功能的doGet(要求){ 回報HtmlService.createTemplateFromFile(「頁」) 。評估()setSandboxMode(HtmlService.SandboxMode.NATIVE); ()被調用'' return [1,2,3]; } – DavidF
是的,我看到'getLotsOfThings()'被調用,但不知道'showThings()'是如何被髮送'things'的。 –