【发布时间】:2020-08-22 11:01:41
【问题描述】:
您好,我正在尝试将函数 addUserToDBs 设置为 promise,但我想知道为什么我的代码不起作用? 有人可以请教吗?谢谢
原函数:
const addUserToDBs = (username) => {
username = username.trim().toLowerCase();
const existingUser = userDatas.users.find(user =>user.name === username);
if (existingUser) {
return { error: 'Username is taken' };
}
let newuser = {
name: username,
id: uuid.v4(),
rooms: [],
joinDate: +new Date()
};
userDatas.users.push(newuser);
save(userDatas, userDB_PATH);
return userDatas.users;
};
上面函数中使用的save函数也是一个promise
const fs = require("fs");
exports.save =(data, PATH) =>{
return new Promise((resolve, reject) => {
fs.writeFile(PATH, JSON.stringify(data), function(err) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
}
下面的代码不工作,不知道为什么?
const addUserToDBs = (username) => {
return new Promise((resolve, reject)=>{
username = username.trim().toLowerCase();
const existingUser = userDatas.users.find(user =>user.name === username);
if (existingUser) {
reject({ error: 'Username is taken' }) ;
}else{
let newuser = {
name: username,
id: uuid.v4(),
rooms: [],
joinDate: +new Date()
};
resolve(newuser)
}
userDatas.users.push(newuser);
save(userDatas, userDB_PATH);
return userDatas.users;
})
};
【问题讨论】: