app.get('/api/users/:username', (req, res) => {
let username = req.params.username;
findUserInApi(username)
.then(foundUser => {
if (foundUser) {
res.status(403).send('User not found in api yet');
}else{
res.json(foundUser);
}
});
});
我想findUserInApi是一个承诺,因为我需要等待的获取就是这样函数内部发生的事情我使用快递。
这是findUserInApi
const findUserInApi = (username) => {
findChattersPerRole()
.then(chattersPerRole => {
console.log(`${username} should\'ve been added by now...`);
//console.log(chattersPerRole);
let wantedUser = find(chattersPerRole, {username});
if (!wantedUser) {
console.log(`${wantedUser} wasn't found m8`);
return Promise.resolve(null);
}
console.log('wanteduser is: ', wantedUser);
getUserByUsername(wantedUser.username)
.then(foundUser => {
console.log('founduser is: ', foundUser);
return Promise.resolve(foundUser);
});
});
};
我以前只是返回null时未找到或foundUser时被发现,但我想通过返回Promise.resolve做出承诺了出来。我不知道如何得到这个固定的...
'findUserInApi'返回undefined。只需要返回承诺呢? – Oriol
'return findChattersPerRole()'? 'then'函数返回的承诺本身,所以我不知道,如果你需要通过调用'Promise.resolve'返回'解决promise'。 –