Невозможно изменить внешнюю переменную вне .then () - PullRequest
0 голосов
/ 05 мая 2020
 let playlistList = db.get("server").find({"id": msg.guild.id}).get("playlists").value();
    let PlaylistsEmbed = new Discord.MessageEmbed()

playlistList.forEach(playlist =>{
        Youtube.getPlaylist(playlist.url).then(result => {
            PlaylistsEmbed.addField(`"**${playlist.name}**"`, result.title);
        }).catch(()=>{
            Youtube.getVideo(playlist.url).then(video => {  
            PlaylistsEmbed.addField(`"**${playlist.name}**"`, video.title);
            }).catch(()=>{
                msg.channel.send("Invalid URL!");
            })
        })
    });
    msg.channel.send({embed: PlaylistsEmbed});
}

Как я могу выполнить обещание перед вызовом msg.channel.send({embed: PlaylistsEmbed});?

PlaylistsEmbed.addField(`"**${playlist.name}**"`, result.title); похоже, не работает, если он вызывается внутри обещания.

Я попытался поместить вокруг него новый Promise (), но я не могу заставить его работать из-за forEach, если я разрешаю его внутри forEach, он добавляет только одну запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...