コード例 #1
0
    void Start()
    {
        c  = new CoroutinePromise(CoroutineA());
        ca = c.Then(CoroutineB());
        CoroutinePromise cb = ca.Then(CoroutineC());

        StartPromiseSet(c);

        CoroutinePromise c2 = new CoroutinePromise(CoroutineA2());

        c2.Then(CoroutineB2()).Then(CoroutineC2());
        StartPromiseSet(c2);
    }
コード例 #2
0
 public IEnumerator SuperCoroutine()
 {
     while (currentPromise != null)
     {
         if (!(!currentPromise.IsDone && currentPromise.Coroutine.MoveNext()))
         {
             if (currentPromise.Promise != null)
             {
                 currentPromise = currentPromise.Promise;
             }
             else
             {
                 currentPromise = null;
             }
         }
         yield return(null);
     }
 }
コード例 #3
0
 public CoroutinePromiseSet(CoroutinePromise c)
 {
     currentPromise = c;
 }
コード例 #4
0
 public CoroutinePromise Resolve(IEnumerator newCoroutine)
 {
     promise = new CoroutinePromise(newCoroutine);
     isDone  = true;
     return(promise);
 }
コード例 #5
0
 public CoroutinePromise Then(IEnumerator newCoroutine)
 {
     promise = new CoroutinePromise(newCoroutine);
     return(promise);
 }
コード例 #6
0
    public void StartPromiseSet(CoroutinePromise c)
    {
        CoroutinePromiseSet cSet = new CoroutinePromiseSet(c);

        StartCoroutine(cSet.SuperCoroutine());
    }
コード例 #7
0
 public void StartPromiseSet(CoroutinePromise c)
 {
     CoroutinePromiseSet cSet = new CoroutinePromiseSet(c);
     StartCoroutine(cSet.SuperCoroutine());
 }
コード例 #8
0
 public IEnumerator SuperCoroutine()
 {
     while (currentPromise != null)
     {
         if (!(!currentPromise.IsDone && currentPromise.Coroutine.MoveNext())) {
             if (currentPromise.Promise != null)
                 currentPromise = currentPromise.Promise;
             else
                 currentPromise = null;
         }
         yield return null;
     }
 }
コード例 #9
0
 public CoroutinePromiseSet(CoroutinePromise c)
 {
     currentPromise = c;
 }
コード例 #10
0
 public CoroutinePromise Then(IEnumerator newCoroutine)
 {
     promise = new CoroutinePromise(newCoroutine);
     return promise;
 }
コード例 #11
0
 public CoroutinePromise Resolve(IEnumerator newCoroutine)
 {
     promise = new CoroutinePromise(newCoroutine);
     isDone = true;
     return promise;
 }
コード例 #12
0
    void Start()
    {
        c = new CoroutinePromise(CoroutineA());
        ca = c.Then(CoroutineB());
        CoroutinePromise cb = ca.Then(CoroutineC());
        StartPromiseSet(c);

        CoroutinePromise c2 = new CoroutinePromise(CoroutineA2());
        c2.Then(CoroutineB2()).Then(CoroutineC2());
        StartPromiseSet(c2);
    }