我不太熟悉承诺。 我希望隐藏诺言 - 诺言的实现。承诺呼叫与承诺分辨
例子:
function findFriends(req, res) {
const promiseFriend = MyFriendes.find({}).exec(); //call promise
if(friends.length===0){
logger.warn('No friendsavailible');
}else if(friends === undefined){
res.status(500).json({
error: 'INTERNAL ERROR'
});
}else{
res.status(200).json({
friends: friends
});
}
}
,我将同一个文件内解决我的希望,但是在同样的功能不 ,在这里我把这种承诺。
promiseFriend
.then(function(friends){
return friends;
})
.catch(function(err){
logger.error({error:err});
});
现在我明白了那个“promiseFriend”是未定义的。 如何将承诺呼叫与承诺解决方案分开?
你能发布更多的代码吗?你在哪里打电话给“findFriends”,你准确地称呼诺言? 我可以告诉你有关承诺的一件事 - 只要你不在代码的某个地方调用'then',承诺就不会被解决。解决之后,您可以根据需要多次调用相同的'then',并返回相同的值(已解决)。 promiseFriend未定义与承诺无关 - 它只是意味着在您调用promise的地方,这个变量是未定义的。 – SzybkiSasza