Getting Started With Google Apps Script
Getting Started With Google Apps Script
Written by Ian Elliot   
Saturday, 28 October 2017
Article Index
Getting Started With Google Apps Script
Using Files And Calling Functions
Using jQuery & Promises

Using jQuery & Promises

This section is at a slightly more advanced level 

One problem is that Apps Script mostly used classic JavaScript 1.8 or ES5 with some extras from later editions. There is no support for Promises, for example, and given that you are mostly writing asynchronous code this is a shame.

The good news is that you can use jQuery on the client side to make your code much easier to write. 

You can include jQuery from the Google Content Distribution Network by adding:

<script src="

to the end of the HTML file. Notice you can't use jQuery with the server-side script because there is no DOM which is what jQuery works with. 

With this addition the onSucess function in the previous Gmail example can be written:

function onSuccess(noThreads){


You can also use jQuery's Deferred object to implement Promises. For example, you can write a getThreads function which returns a Promise which resolves when the SuccessHandler is called: 

function getThreads(){
 var d=$.Deferred();
             function (noThreads){
return d.promise();


With this defined you can write functions like: 





If you are using jQuery 3 then the Deferred and the Promise can be chained and they handle errors correctly. 

If you don't want to use jQuery then you can use Promises on the client side, but there is no indication that Apps Script supports them officially whereas jQuery is not only supported but recommended. 

A Promise implementation of getThreads is:

function getThreads(){
 var p=new Promise(function(resolve,reject){
                        function (noThreads){
return p;


It works and can be used in exactly the same way as the jQuery version.  


Where Next?

There is a lot more to find out about Apps Script. You need to discover "triggers", which let you run apps at predefined times or in response to events that occur in containers. You will need to find out about templates and how to use them because only the smallest and simplest of projects don't need them. You can use it to build add-ins to existing containers such as the Spreadsheet, you can use it to access other Google services, you can even use it to build web apps that use other services that have nothing to do with Google.  


Related Articles

Gmail, Spreadsheets and Google Apps Script

Gmail Add-ons Open To All

Google Apps Script Gets Eclipse Support

Google Dumps GUI Builder and more       

New Google Apps Script Features


A Programmers Guide To Languages



  1. Octave 
  2. Scratch 2 *revised
  3. Node.js *revised
  4. App Inventor 2 *revised
  5. Getting Started With .NET IL
  6. NetLogo
  7. Small Basic  *revised
  8. TypeScript *revised
  9. Google Apps Script
  10. Python
  11. Google's Go
  12. Ruby: Object-Oriented Approach
               A Functional Language


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin.






or email your comment to:



Just JavaScript - The Function Object

The function object is the most important object in all of JavaScript and yet we tend to forget that it is an object. Understanding that JavaScript functions are objects is probably the most important [ ... ]

Just JavaScript - Functions Scope, Lifetime and Closure

When you first meet it closure seems like the craziest of ideas. However once you realize that JavaScript functions are objects and what this implies then it seems like a natural consequence.

Other Articles


Last Updated ( Saturday, 28 October 2017 )

RSS feed of all content
I Programmer - full contents
Copyright © 2018 All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.