gpt4 book ai didi

Javascript,如何等待多个 promise

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:44 30 4
gpt4 key购买 nike

<分区>

我要实现的目标:

  • 收集艺术家 ID
    • 要么在数据库中找到它们
    • 或创建它们
  • 在数据库中创建一个事件,获取 event_id
  • 等待两者都完成,收集艺术家和事件 ID
  • 现在遍历艺术家、事件组合

我得到的:

我正在使用 Node 和 mysql。要插入关系,我必须等待艺术家插入或创建。我尝试使用以下代码完成:

let promises = [];

if (artists.length != 0) {
for (key in artists) {
promises.push( find_artist_id_or_create_new_artist(artists[key]) )
}
}

await Promise.all(promises);

返回一个id:

async function find_artist_id_or_create_new_artist(artist_name) {
return await find_artist_return_id(artist_name, create_artist_return_id)
}

寻找艺术家:

async function find_artist_return_id(artist_name, callback) {
var sql = "SELECT * FROM `artists` WHERE `name` LIKE "+con.escape(artist_name)+" LIMIT 1;"

con.query(sql, (err,row) => {
if(err) throw err;

if (row.length == 0) {
return callback(artist_name)
} else {
return row[0].id
}
});
}

创建艺术家

async function create_artist_return_id(artist_name) {
var sql = "INSERT INTO `artists` (`id`, `name`, `meta_1`, `meta_2`) VALUES (NULL, "+con.escape(artist_name)+", NULL, NULL)";

con.query(sql, (err, result) => {
if(err) throw err;

return result.insertId
});
}

我知道我无法在 con.query 函数中返回,但我不知道如何正确设置代码来完成此操作。感谢您提供有关如何搜索答案的链接或帮助。

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