2012-07-25 68 views

回答

3

它正在检查remaining的值不等于0(同时也减小值)。

本质上,它是这样做的:

... 
else if (remaining -= 1 && !(remaining)) { 
    deferred.resolveWith(contexts, values); 
} 
+1

...而递减它。 – 2012-07-25 19:15:38

+0

@MattBall补充说。 – Neal 2012-07-25 19:16:19

+0

否。先递减“剩余”,然后测试。 – dda 2012-07-25 19:17:32

0

!(--remaining)

!没有真正的考验

- 递减

- >递减剩余,然后测试它是否是== 0,

-1

更容易阅读的版本!( - 剩余), 需要描述性能。

   } else if(remaining > 0) { 
        --remaining; 

        // if --remaining === 0, then resolve Deferred 
        if(remaining === 0) { 
         deferred.resolveWith(contexts, values); 
        } 
       }