var Q = require("q");
documentation for Q
https://github.com/kriskowal/q
https://github.com/kriskowal/q/wiki/API-Reference
Specification
https://promisesaplus.com
http://www.cnblogs.com/moye/p/promise_q_async.html
http://www.ituring.com.cn/article/54547
http://www.chenqing.org/2014/05/use-q-js-to-promise-in-node.html});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Q.fcall(delayOne).then(delayTwo).then(delayThree).then(delayFour).done();
//
denodeify
var fs_readFile = Q.denodeify(fs.readFile)
var promise = fs_readFile('myfile.txt')
promise.then(console.log, console.error)
//none promise oauth2Client.getToken(code).then(function(){ })
//promise var deferred= Q.defer(); oauth2Client.getToken(code, deferred.makeNodeResolver()); deferred.promise.then(function(tokens){ });
http://www.sitepoint.com/overview-javascript-promises/
http://www.sitepoint.com/deeper-dive-javascript-promises/