onFulfill = function(value) {
      'use strict';
      resolve(value);
    }
@param {!Array<?(goog.Promise<TYPE>|goog.Thenable<TYPE>|Thenable|*)>}
    promises
@return {!goog.Promise<TYPE>} A Promise that receives the value of the first
    input to be fulfilled, or is rejected with a list of every rejection
    reason if all inputs are rejected.
@template TYPE