小编bar*_*eat的帖子

Javascript,如何等待多个承诺

我想要完成的事情:

  • 聚集艺术家ID
    • 要么在数据库中找到它们
    • 或创建它们
  • 在db中创建一个事件,获取event_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);
Run Code Online (Sandbox Code Playgroud)

返回一个id:

async function find_artist_id_or_create_new_artist(artist_name) {
    return await find_artist_return_id(artist_name, create_artist_return_id)
} 
Run Code Online (Sandbox Code Playgroud)

寻找艺术家:

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
      }
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js async-await

8
推荐指数
1
解决办法
5464
查看次数

标签 统计

async-await ×1

asynchronous ×1

javascript ×1

node.js ×1