gpt4 book ai didi

javascript - 不明白如何在异步函数中返回函数数组的答案

转载 作者:行者123 更新时间:2023-12-01 02:52:42 25 4
gpt4 key购买 nike

我正在尝试在 Promise 函数中创建一个新的数组对象,并且还尝试从 getUser 函数添加用户参数。

我正在努力将数据放入数组中。

有人能给我一个如何实现这个的例子吗?

谢谢。

      var results_array = [];
return callHistory(76).then((result)=>{
_.map(result, (item, index) => {
var obj = JSON.parse(item.params);
results_array[index] = {
id: item.id,
status: item.status,
timestamp: item.timestamp,
from_id:obj.from_id,
to_id: obj.to_id,
conference: obj.conference,
to:"",
from:getUser(10)

};
});


res.json({
status: 1,
result: results_array
})
//return results_array;
})

function getUser(id){

return new Promise(function (resolve, reject) {
connection.query(`SELECT * FROM members WHERE id = ${id} `, function (error, results, fields) {
if (error) reject(error);
return resolve(results);
});
});

}

最佳答案

首先让我们美化一下 getUser :

function getUser(id){
return connection.query(`SELECT * FROM members WHERE id = ${id} `);
}

异步等待也可以在循环中使用,使您的主循环也更加优雅:

async function getHistory(index){
const history = await callHistory(index), result = [];

for(const call of history){
const params = JSON.parse( call.params );
params.to = "";
params.from = await getUser( 10 /*params.from*/ );

result.push( params );
}
return result;
}

可用作:

getHistory(76)
.then( result => res.json({status:1, result })
.catch( error => res.json({status:500, error });

关于javascript - 不明白如何在异步函数中返回函数数组的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46872438/

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