[英]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
。
请注意,您传递给then
并catch
的函数表达式(确实具有return
语句不是second
函数本身)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.