为什么当 promise 调用另一个 promise return 'undefined'
Why when promise calling another promise return 'undefined'
在我的应用程序中,我使用 mongoose 和 mongodb,在一个场景中我需要从另一个承诺调用承诺,但承诺 return 未定义,我的代码是
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
函数,我想要它 return 2 但它 return 未定义,我在 SF 上搜索并找到一些关于这个,但没有一个能解决我的问题。
您正在记录 second(2)
的 return 值,但是 second
函数中没有 return
语句,因此它将始终 return undefined
.
请注意,您传递给 then
和 catch
的函数表达式(确实有 return
语句不是 second
函数本身)。
在我的应用程序中,我使用 mongoose 和 mongodb,在一个场景中我需要从另一个承诺调用承诺,但承诺 return 未定义,我的代码是
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
函数,我想要它 return 2 但它 return 未定义,我在 SF 上搜索并找到一些关于这个,但没有一个能解决我的问题。
您正在记录 second(2)
的 return 值,但是 second
函数中没有 return
语句,因此它将始终 return undefined
.
请注意,您传递给 then
和 catch
的函数表达式(确实有 return
语句不是 second
函数本身)。