Код: Выделить всё
return Database.createDatabase()
.then((database)=> {
return insertSurvey(parsedData,database)
})
.then((outa)=>{
console.log(outa)
})
< /code>
Созданная атаказа позволяет SQLite обещания
Код вставки является следующим образом < /p>
const insertSurvey = (surveyObject : any, database) => {
return database.transaction((tx) => {
console.log("BEFORE SURVEY_INSERT_STRING executeSql")
return tx.executeSql(
Database.SURVEY_INSERT_STRING ,
[
surveyObject.troubleShooting,
]
)
.then(async ()=>{
let arrayOfPromisesForAssetInsertion = []
for(let count = 0 ; count < survey.assets.length; count ++)
{
arrayOfPromisesForAssetInsertion.push(insertAsset(tx,survey.assets[count], survey.surveyId))
}
return Promise.all(arrayOfPromisesForAssetInsertion) // REACHED POINT
})
.then((valuesAfterAssetInsertion)=>{.
console.log(valuesAfterAssetInsertion) // DOES NOT REACH HERE
let arrayOfIssuesInsertion = survey.assets.map((asset) =>
insertIssues(tx, asset, survey.surveyId)
);
return Promise.all(arrayOfIssuesInsertion)
})
.catch((msg)=>{
console.log("error caught ",msg)
})
})
.then((sur)=>{
// console.log("returning transaction and surveyObject",tx,surveyObject)
return "output". // LINE OUTPUT
})
}
function insertAsset(tx, asset, surveyId) {
setLoadingText ( "Assets")
return tx.executeSql(
Database.ASSETS_INSERT_STRING ,
[
asset.completed ?? false
])
.then((values)=>{
return values
})
}
Почему DB.transaction не достигает точки «console.log(valuesAfterAssetInsertion)»
Подробнее здесь: https://stackoverflow.com/questions/793 ... -next-then