Javascript 解析承诺前返回的异步函数..JS,MondoDB,Twilio

Javascript 解析承诺前返回的异步函数..JS,MondoDB,Twilio,javascript,mongodb,asynchronous,async-await,Javascript,Mongodb,Asynchronous,Async Await,我试图从数据库中获取列表列表,将该列表格式化为包含列表项中“name”的字符串,然后返回结果。我以为我已经正确地设置了async和Wait,但是在承诺得到解决之前,结果会作为承诺提前返回。关于让异步函数在承诺得到解决之前不返回的任何提示 exports.viewListsNamesSMS = async () => { let formatResult = (messages) => { let temp = []; for(let i = 0; i < m

我试图从数据库中获取列表列表,将该列表格式化为包含列表项中“name”的字符串,然后返回结果。我以为我已经正确地设置了async和Wait,但是在承诺得到解决之前,结果会作为承诺提前返回。关于让异步函数在承诺得到解决之前不返回的任何提示

exports.viewListsNamesSMS = async () => {

 let formatResult = (messages) => {
    let temp = [];
    for(let i = 0; i < messages.length; i ++)
        {
            temp.push(messages[i].name.toString());
        }
        return "Lists: \n" + temp.join('\n');
}



 let getListNames = async () => {
      let result = await db.List.find({}, (err, messages) => {
        if(err) return err;

        return formatResult(messages);
         });

         return result;
    }

let result = getListNames();

return result;

}
exports.viewListsNamesSMS=async()=>{
让formatResult=(消息)=>{
设temp=[];
for(设i=0;i{
让result=wait db.List.find({},(err,messages)=>{
if(err)返回err;
返回格式化结果(消息);
});
返回结果;
}
让result=getListNames();
返回结果;
}

db.List.find看起来不像是返回承诺的东西,因此您需要承诺它

exports.viewListsNamesSMS = () => {

    let formatResult = (messages) => {
        let temp = [];
        for(let i = 0; i < messages.length; i ++) {
            temp.push(messages[i].name.toString());
        }
        return "Lists: \n" + temp.join('\n');
    }

    let getListNames = () => {
        return new Promise((resolve, reject) => {
            db.List.find({}, (err, messages) => {
                if(err) {
                    reject(err);
                } else {
                    resolve(formatResult(messages));
                }
            });
    }
    return getListNames();
}


那么,
db.List.find
返回一个承诺?它看起来不像是一个常规的节点回调函数
viewListNamesSMS().then(results => process(results))
results = await viewListNamesSMS();
process(results)