繁体   English   中英

为什么当承诺调用另一个承诺时返回“未定义”

[英]Why when promise calling another promise return 'undefined'

在我的应用程序中,我使用mongoose和mongodb,在一种情况下,我需要从另一个诺言中调用诺言,但是诺言返回未定义,我的代码是

 function first (num) { return new Promise(function(resolve,reject){ if(num % 2 === 0){ resolve(num); } else{ reject('Error Happend'); } }) } function second(num){ first(num).then(function(res){ return res; }).catch(function(err){ return err; }) } console.log(second(2)) 
 <script src="https://cdn.jsdelivr.net/bluebird/latest/bluebird.js"></script> 

在这种情况下,我将2传递给second函数,并且我希望它返回2,但返回未定义,我在SF上搜索并找到了一些与此相关的主题,但是它们都没有解决我的问题。

您正在记录second(2)的返回值,但是second函数中没有return语句,因此它将始终返回undefined

请注意,您传递给thencatch的函数表达式(确实具有return语句不是second函数本身)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM