code: function _fulfilled(value) {
              try {
                  return fulfilled ? fulfilled.call(this, value) : // propagate
                  value;
              } catch (e) {
                  // can not use logger.error
                  // must expose to user
                  // print stack info for firefox/chrome
                  logError(e.stack || e);
                  return new Reject(e);
              }
          }
docs: wrap user's callback to catch exception wrap user's callback to catch exception