我试图摆脱使用Mongoose Promise与Node.js的异步/等待功能的束缚。 但是我有第二个“查找”功能的问题,因为它链接到第一个,我想因为我没有第一个查找结果。 如何等待第一个功能的响应然后执行第二个功能?
exports.permissions_Check2 = async function(params){
const Sessioni = require('../models/Sessioni');
const Permessi = require('../models/Permessi');
const express = require ('express');
var token= params['Token'];
var tabelle = params['Tabelle'];
var DataSession= [];
var out;
try{
const sessioni = await Sessioni.findOne({token: token}).exec();
const permessi = await Permessi.findOne({IDGruppo: sessioni.IDGruppo}).exec();
out={
IDAccesso: sessioni._id,
IDUser: sessioni.IDUser,
IDGruppo:sessioni.IDGruppo,
Permessi: permessi
}
return out;
} catch (err){
return err;
}
return out;
}
输出: { IDAccesso:“ ehwuhf7867tgyb”, IDUser:1 IDGruppo:1 Permessi:null}
答案 0 :(得分:0)
如何使用Promises? 看起来像
Sessioni.findOne({token: token})
.exec()
.then(sessioni => {
Permessi.findOne({IDGruppo: sessioni.IDGruppo})
.exec()
.then(permessi => {
out={
IDAccesso: sessioni._id,
IDUser: sessioni.IDUser,
IDGruppo:sessioni.IDGruppo,
Permessi: permessi
}
}).catch(e => throw e);
}).catch(e => throw e)
我不确定您使用的是哪个数据库,但希望能对您有所帮助