如何将功能与等待分开
How to seperate function with await
我刚刚从 php 转为全职 js。我尝试在 javascript 函数中 清理代码 但仍然搞不清楚如何处理它
for(let i in allEmpData) {
let emp = allEmpData[i]
if(empData == null) {
const addEmp = new Employee()
this.addEmpFn(addEmp, emp)
}
if(empData != null) {
this.addEmpFn(empData, emp)
}
}
我调用函数 addEmpFn 是因为我在其中放入了 create/update 代码,这里是我的函数 addEmpFn
addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
错误说:
意外令牌return等待
我想做这样的事情,但是在干净的代码中,单独的函数
for(let i in allEmpData) {
const empData = await Employee.query()
.where('id',1)
.first();
let emp = allEmpData[i]
if(empData == null) {
const addEmp = new Employee()
addEmp.name = emp.name
return await empData.save()
}
if(empData != null) {
empData.name = emp.name
return await empData.save()
}
}
您需要按如下方式将函数分配为异步:
async addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
await 关键字只能在异步函数中使用。所以你必须在函数声明之前写 async 关键字。
像这样;
async addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
试着在你的函数之前提到 async 就像我下面提到的
async addEmpFn(empData, emp) {
empData.name = emp.name;
return await empData.save();
}
这里你真的不需要 async await,当你想等待 promise 得到解决时需要 async await。
而且 return await 是 JS 中的反模式,除非你不想使用 try-catch。
下面的代码是要走的路,与接受的答案一样工作。
addEmpFn(empData, emp) {
empData.name = emp.name
return empData.save()
}
我刚刚从 php 转为全职 js。我尝试在 javascript 函数中 清理代码 但仍然搞不清楚如何处理它
for(let i in allEmpData) {
let emp = allEmpData[i]
if(empData == null) {
const addEmp = new Employee()
this.addEmpFn(addEmp, emp)
}
if(empData != null) {
this.addEmpFn(empData, emp)
}
}
我调用函数 addEmpFn 是因为我在其中放入了 create/update 代码,这里是我的函数 addEmpFn
addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
错误说:
意外令牌return等待
我想做这样的事情,但是在干净的代码中,单独的函数
for(let i in allEmpData) {
const empData = await Employee.query()
.where('id',1)
.first();
let emp = allEmpData[i]
if(empData == null) {
const addEmp = new Employee()
addEmp.name = emp.name
return await empData.save()
}
if(empData != null) {
empData.name = emp.name
return await empData.save()
}
}
您需要按如下方式将函数分配为异步:
async addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
await 关键字只能在异步函数中使用。所以你必须在函数声明之前写 async 关键字。
像这样;
async addEmpFn(empData, emp) {
empData.name = emp.name
return await empData.save()
}
试着在你的函数之前提到 async 就像我下面提到的
async addEmpFn(empData, emp) {
empData.name = emp.name;
return await empData.save();
}
这里你真的不需要 async await,当你想等待 promise 得到解决时需要 async await。
而且 return await 是 JS 中的反模式,除非你不想使用 try-catch。
下面的代码是要走的路,与接受的答案一样工作。
addEmpFn(empData, emp) {
empData.name = emp.name
return empData.save()
}