最近,公司维护之前的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]])
我又进行了这样的一个尝试,打印出上面的数组输出的结果:
嗯, 这就是上面代码输出的结果,但是问题是还是不明白为什么这么用就可以进行前面的数据的选择,手动捂脸······,在这里记录下,有这种使用的方式。