code: function (payload) {
          var pendingList = pendings[payload.type];
          if (pendingList) {
              pendingList.push(payload);
          }
          else {
              payload.dispatchAction = dispatchAction;
              api.dispatchAction(payload);
          }
      }
docs: FIXME better approach? 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip, which may be conflict, (axisPointer call showTip but tooltip call hideTip); So we have to add "final stage" to merge those dispatched actions.