arrays - 带有数组映射的嵌套异步函数,空响应
问题描述
问题是变量arrV
在发送到 res 时为空。我尝试.then()
在第一次异步或调用return new Promise
之后插入函数,(async () => {
但结果是一样的。我将粘贴 main 和其他功能:
router.get('/telegram/chats', (req,res,next) => {
let arrV = [];
(async () => {
let q = await Telegram.getChats();
Object.keys(q).map(async (k, v) => {
let search = await MTel.getChatById(q[k].id,(r) => {
if(!r){
MTel.insertChat([q[k].id,q[k].title,q[k].last_message,0], (p) => {
arrV.push(p);
})
}
});
});
})();
res.send(arrV);
});
Telegram.getChats():
async function getChats(options) {
let ret = [];
let ok = await client.getChats();
for(var k in ok["chat_ids"]){
let ch = await client.getChat(ok["chat_ids"][k]);
ret.push({id: ch.id, title: ch.title, last_message: ch["last_message"].id});
}
return ret;
}
Mtel.getChatById() 和 Mtel.insertChat():
const getChatById = (id,callback) => {
let qq = db.select(table,{id_chat: id},"LIMIT 0,1", (r) => {
return callback(r);
})
}
const insertChat = (obj,callback) => {
let qq = db.insert(table,["id_chat","title","last_message","active"],[obj], (r) => {
return callback(r);
})
}
谢谢你。
解决方案
推荐阅读
- rust - 在rust中将变量类型作为函数参数传递?
- vb.net - Visual Basic 是否会非常缓慢地处理这样的嵌套循环,或者我的代码是否存在其他问题?
- ios - TextView 和 TextField 的单个扩展以添加工具栏
- angular - 我需要取消订阅 Ngrx Select
- .net - Npsql:使用 EF Core 在 jsonb 列上创建索引
- java - Let's Encrypt + Hitch: Android OkHttp java.security.cert.CertPathValidatorException: Response is unreliable: its valid interval is out-of-date
- flutter - 如何将 ColorTween 动画添加到 TabBar?
- html - 粘性第一行和第一列没有滚动溢出问题
- html - 通过 XSLT 漂亮地打印 HTML 而不引入大量空白
- ruby - 使用 Ruby 检查用户名是否存在于 sqlite3 数据库中