gpt4 book ai didi

javascript - 为什么 return 在创建项目之前执行并且 console.log 等待并显示正确的 id?

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:00 25 4
gpt4 key购买 nike

我正在使用node.js、express 和 pnp (sharepoint) 插入列表项,问题是返回到 console.log 的 id 是正确的,但当我尝试发回创建的 id 时,它变为空。为什么 console.log 等待代码而返回却没有?

这是我的代码:

app.use(express.json());

//Método inserir emergencia
app.post('/inserirEmergencia', function(req, res){
var retorno = inserirEmergencia(req);
return res.json(retorno);
});

app.listen(3001);

async function inserirEmergencia(req) {

var retornoItemAdd;

const listAdd = await sp.web.lists.getByTitle("Emergências").items.add({
Descricao: req.body.Descricao,
NomeId: req.body.NomeId,
DataEmergencia: req.body.DataEmergencia,
TipoEmergenciaId: req.body.TipoEmergenciaId,
SubtipoEmergenciaId: req.body.SubtipoEmergenciaId,
Email: req.body.Email,
Telefone: req.body.Telefone,
LocalSetorEndereco: req.body.LocalSetorEndereco,
Estado: req.body.Estado,
Municipio: req.body.Municipio
}).then((iar) => {
console.log(iar); //waits for the creation
return iar; //executes without waiting

}).catch((err) => {
retornoItemAdd = err;
console.log(err);
return err;
});
}

我将代码更新为:

所以,谢谢您的回复,我编辑并删除了然后..但仍然发生同样的事情..

async function inserirEmergencia(req) {

const listAdd = await sp.web.lists.getByTitle("Emergências").items.add({
Descricao: req.body.Descricao,
NomeId: req.body.NomeId,
DataEmergencia: req.body.DataEmergencia,
TipoEmergenciaId: req.body.TipoEmergenciaId,
SubtipoEmergenciaId: req.body.SubtipoEmergenciaId,
Email: req.body.Email,
Telefone: req.body.Telefone,
LocalSetorEndereco: req.body.LocalSetorEndereco,
Estado: req.body.Estado,
Municipio: req.body.Municipio
});

console.log(listAdd);
return listAdd;

}

最佳答案

您应该删除对函数 then 的调用并修改您的方法并仅保留 await 运算符。

app.use(express.json());

//Método inserir emergencia
app.post('/inserirEmergencia', async function(req, res) {
try {
var retorno = await inserirEmergencia(req);
return res.json(retorno);
} catch (e) {
//Error handling
}
});

app.listen(3001);

async function inserirEmergencia(req) {
const listAdd = await sp.web.lists.getByTitle("Emergências").items.add({
Descricao: req.body.Descricao,
NomeId: req.body.NomeId,
DataEmergencia: req.body.DataEmergencia,
TipoEmergenciaId: req.body.TipoEmergenciaId,
SubtipoEmergenciaId: req.body.SubtipoEmergenciaId,
Email: req.body.Email,
Telefone: req.body.Telefone,
LocalSetorEndereco: req.body.LocalSetorEndereco,
Estado: req.body.Estado,
Municipio: req.body.Municipio
});

return listAdd;
}

关于javascript - 为什么 return 在创建项目之前执行并且 console.log 等待并显示正确的 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60328303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com