关于complete的问题

来源:6-3 灯光效果

Franc_Ribery

2015-09-12 01:46

不管是执行openDoor()还是shutDoor(),里面函数doorAction中的count刚开始都是2,感觉complete中的if语句始终都不会执行,但是这里只有返回了defer.resolve()后面才能继续执行then的异步操作,不是很明白为什么这里的if语句会执行。。希望老师解答一下。。

写回答 关注

3回答

  • 品茗见南山
    2015-11-12 13:54:35
    已采纳

    if里的会执行。是因为左门和右门各调用了一次。左门调用后count变为了1.右门执行时可以进入if。释放defer.

    你可以换成下面看下流程就知道了。

            var complete = function(tt) {

    console.log(count);

    console.log(tt);

                if (count == 1) {

                    defer.resolve();

                    return;

                }

                count--;

            };

            doorLeft.transition({

                'left': left

            }, time, complete("左门"));

            

            doorRight.transition({

    'left': right

    }, time, complete("右门"));

            


    Franc_...

    非常感谢!

    2015-11-30 12:59:00

    共 1 条回复 >

  • echo_kinchao
    2015-09-12 17:46:43

    执行的代码顺序不同加载功能的表现也不同

  • Franc_Ribery
    2015-09-12 11:35:39

    又看了看。。是因为先执行的doorLeft.transition让count减1,然后再执行doorRight.transition,当它执行完的时候才通过if判断返回‘已完成’状态的defer对象供后面开灯关灯的then方法调用。。是这样理解吗?

    qq_画一群...

    这个返回执行完毕时给后面开灯关灯用的吗???

    2016-11-20 17:49:35

    共 2 条回复 >

H5+JS+CSS3实现七夕言情

为七夕节准备的H5+JS+CSS3特效案例,由浅入深案例拆分讲解

211523 学习 · 540 问题

查看课程

相似问题