protected override IPromise CreatePromise <TElement>(IPromiseCollectionInfo <TElement> collection, Action <TElement> body, int insertionIndex = -1)
        {
            var promise = Promises.LoopPromiseInfo <TElement> .CreateInstance <TElement>(collection, body, insertionIndex : insertionIndex);;

            ThenUniqueID = promise.UniqueID;
            return(promise);
        }
 public abstract IPromise Then <T>(IPromiseCollectionInfo <T> collection, Action <T> body);