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