code: function(article, options, callback) {
  
              if (arguments.length === 2) {
                  callback = options;
                  options = null;
              }
  
              var self = this;
  
              //noinspection JSValidateTypes
              flow()
                  .seq(function(cb) {
                      article.fetch(null, cb);
                  })
                  .seq("product", function(cb) {
                      self.initializeProduct(article.$.product, options, cb);
                  })
                  .exec(function(err, results) {
                      callback && callback(err, results.product);
                  });
          }
docs: *
  @param {sprd.model.Article} article
  @param {Object} [options]
  @param {Function} callback