在我的应用程序中我使用mongoose和mongodb,在一个场景中我需要从另一个promise中调用promise,但是promise返回undefined,我的代码是
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>
&#13;
在这种情况下,我将2
传递给second
函数,我希望它返回2,但它返回undefined,我在SF上搜索并找到一些关于此的主题,但它们没有解决我的问题。 / p>
答案 0 :(得分:2)
您正在记录second(2)
的返回值,但second
函数中没有return
语句,因此它将始终返回undefined
。
请注意,传递给then
和catch
的函数表达式(具有return
语句的函数表达式本身并不是second
函数)。