数组的一种从来没有使用过的选择条件的方式

最近,公司维护之前的react的后台管理项目,在经过一系列的bug处理之后,项目终于重新上线了。

当然,前面所说的都不是重点,在这次维护中,发现代码中有一行代码很有意思

Promise[['reject', 'resolve'][+(status >= 200 && status <= 400)]](res.body);

解释下上面的代码的作用,上面的代码会根据status来判断Promise后面跟的是数组['reject', 'resolve']中的哪一个

下面是我自己的一个尝试

Promise[['reject','resolve'][+ true]]({name: 'li'}).then(data => {console.log(data.name)})

上面是在控制台的输出,最终的结果输出的是 li .

但是,为什么处理的结果是 resolved 的状态呢? 没关系我们继续拆:

console.log([['123','456'][+ false]])

我又进行了这样的一个尝试,打印出上面的数组输出的结果:


嗯, 这就是上面代码输出的结果,但是问题是还是不明白为什么这么用就可以进行前面的数据的选择,手动捂脸······,在这里记录下,有这种使用的方式。


PS: 自己知道的还是太少了,有知道的大神,劳烦解释下,不胜感激!!

猜你喜欢

转载自blog.csdn.net/mulige/article/details/80195537