查看jQuery的deferred.js源代码,
} else if ( !( --remaining ) ) {
deferred.resolveWith( contexts, values );
}
做什么!( - 恢复)比较吗?
来自https://stackoverflow.com/a/4943788/115988,看起来这是一个'令人困惑'的简写布尔检查?
答案 0 :(得分:3)
正在检查remaining
的值是否不等于0
(同时还会递减该值)。
基本上它是这样做的:
...
else if ( remaining -= 1 && !( remaining ) ) {
deferred.resolveWith( contexts, values );
}
答案 1 :(得分:0)
!(--remaining)
:
!不是真的测试
- 减少
- >减少剩余,然后测试它是否== 0。
答案 2 :(得分:-1)
更容易阅读的版本!( - 剩下的), 将需要描述性能。
} else if( remaining > 0 ) {
--remaining;
// if --remaining === 0, then resolve Deferred
if( remaining === 0 ) {
deferred.resolveWith( contexts, values );
}
}