Leo*_*ice 1 javascript mongoose mongodb node.js
我有一个像这样的函数:
createNewUser async (user) {
const newUser = new User();
newUser.name = user.name;
newUser.password = user.password;
let result = await newUser.save((err, data) => {
if (err) return err;
console.log(data);
return data;
})
console.log(result) // Undefined
}
Run Code Online (Sandbox Code Playgroud)
结果返回未定义,并且它在 console.log(data) 之前运行,这非常奇怪。有什么方法可以获取 newUser.save() 的结果,无论是错误还是成功保存的数据?
async/await如果您想使用or ,则不必使用回调promises。文档中明确了这一点。
所以,正确的代码:
async createNewUser (user) {
const newUser = new User();
newUser.name = user.name;
newUser.password = user.password;
const result = await newUser.save();
console.log(result); // result
}
Run Code Online (Sandbox Code Playgroud)
如果您需要处理错误(强烈建议这样做,但在您的代码中错误处理程序不会执行任何操作),您可以将其包装到try/catch:
async createNewUser (user) {
const newUser = new User();
newUser.name = user.name;
newUser.password = user.password;
try {
const result = await newUser.save();
console.log(result); // result
} catch (err) {
console.error("something goes wrong");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |