2012-07-25 67 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); 
        } 
       }