Promise.resolve返回undefined问题咨询(续:多Promise的resolve位置问题)
问题复盘:复用Promise代码时返回undefined的排查与修复
嘿,这是《多Promise场景下应在何处调用resolve?》的续篇,我最近在不同函数里复用了一段相同的代码,结果碰到了个棘手的问题——Promise.resolve居然返回了undefined!
多亏了多位朋友帮忙指点,最后我总算揪出了代码里的两处错误:
错误1:在非布尔逻辑场景下误用了
&&运算符
原本的代码写的是console.log(results) && Promise.resolve(results),但console.log()的返回值是undefined,用&&连接的话,整个表达式会直接返回undefined,根本到不了后面的Promise.resolve(results)。正确的写法应该换成(console.log(results), Promise.resolve(results)),借助逗号运算符确保最终返回的是我们需要的Promise实例。错误2:多余使用了扩展运算符
...
代码里没必要的扩展操作意外破坏了原本的数据结构,导致后续Promise处理时拿到了不符合预期的值,最终间接引发了返回undefined的问题。
内容的提问来源于stack exchange,提问作者Someone Special
相关产品推荐
相关产品推荐

