作者回复: 这是新的 js 的标准 叫做 optional chaining:https://github.com/tc39/proposal-optional-chaining ,目前已经到 stage 4 完成状态。 在处理 article 可能是 undefine的 的情况时,两者是等价的。但如果 article 还可能是 0,false,null 这样的 falsy 的值时,两者的返回值会不一样。article && article.userId 返回 0, false 或者 null,而 article?.userId 返回 undefined。 所以一般情况下,我们都可以用 ?. 来简化一些条件判断。
作者回复: 这里倒没有“强行”,例子中的 article 和 user 是两个不同的数据源,所以根据状态分别获取应该比较容易理解。如果两个请求总是在一起使用,那么其实可以封装成一个方法去获取两个请求,这样在使用的时候就等价于一个异步请求了。