在我的应用程序中,我使用 mongoose 和 mongodb ,在一种情况下,我需要从另一个 promise 调用 promise ,但 promise 返回未定义,我的代码是
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
语句,因此它会始终返回未定义
。
请注意,传递给 then
和 catch
的函数表达式(其中确实有 return
语句)不是 second
函数本身)。
关于javascript - 为什么当promise调用另一个promise时返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136520/