Код: Выделить всё
const playlist = {
playlist_idea_uri: uri.toString(),
type: 'master'
}
const insertedPlaylistIdResponse = await db
.insertInto('playlist')
.values(playlist)
.onConflict((oc) => oc.doNothing())
.returning('id')
.executeTakeFirst()
let songs = masterPlaylist.songs.map((song) => {
return {
track_name: song.trackName,
track_mb_id: song.trackMbId,
album_artwork_ref: song.albumArtwork?.ref.toString(),
created_at: song.createdAt
}
})
const insertedSongIdsResponse = await db
.insertInto('song')
.values(songs)
.onConflict((oc) => oc.doNothing())
.returning('id')
.execute()
var position = 0
if (insertedPlaylistIdResponse?.id) {
const playlistItems = insertedSongIdsResponse.map((songIdResponse) => {
if (this !== undefined) {
return undefined
} else {
const newPosition = this + 1
return {
playlist_id: insertedPlaylistIdResponse.id,
song_id: songIdResponse.id,
position: newPosition
}
}
}, position)
await db
.insertInto('playlist_item')
.values(playlistItems)
.execute()
}
Код: Выделить всё
const playlistItems = insertedSongIdsResponse.map((songIdResponse) => {
if (this !== undefined) {
return undefined
} else {
const newPosition = this + 1
return {
playlist_id: insertedPlaylistIdResponse.id,
song_id: songIdResponse.id,
position: newPosition
}
}
}, position)
Код: Выделить всё
export interface PlaylistItemTable {
id: Generated
playlist_id: number
song_id: number
position: number
}
На сцене, на которой следует сосредоточиться, - это переменная Position , и могу ли я использовать параметр thisArg array.map ( ) Функция как своего рода итератор, который каждый раз он отображает, он будет увеличиваться, в зависимости от того, как я его использовал. может быть не определенным, но я не уверен, почему, потому что я проверил это прямо перед тем, как попытаться использовать его.
Любая помощь ценится!
Подробнее здесь: https://stackoverflow.com/questions/794 ... on-to-incr
Мобильная версия