function asyncStrategy(node, oAggregation, mAggregations) {
			var childNode,
				pChain = Promise.resolve(),
				aChildPromises = [];

			for (childNode = node.firstChild; childNode; childNode = childNode.nextSibling) {
				pChain = pChain.then(fnCallback.bind(null, node, oAggregation, mAggregations, childNode));
				aChildPromises.push(pChain);
			}
			return Promise.all(aChildPromises);
		}
function asyncStrategy(node, oAggregation, mAggregations) {
			var childNode,
				pChain = Promise.resolve(),
				aChildPromises = [];

			for (childNode = node.firstChild; childNode; childNode = childNode.nextSibling) {
				pChain = pChain.then(fnCallback.bind(null, node, oAggregation, mAggregations, childNode));
				aChildPromises.push(pChain);
			}
			return Promise.all(aChildPromises);
		}
function asyncStrategy ( node , oAggregation , mAggregations ) { var childNode , pChain = Promise . resolve ( ) , aChildPromises = [ ] ; for ( childNode = node . firstChild ; childNode ; childNode = childNode . nextSibling ) { pChain = pChain . then ( fnCallback . bind ( null , node , oAggregation , mAggregations , childNode ) ) ; aChildPromises . push ( pChain ) ; } return Promise . all ( aChildPromises ) ; }
async strategy ensures processing order by chaining the callbacks
async strategy ensures processing order by chaining the callbacks
async strategy for async aggregation