DB. Transaction не ждет обещания. Все, чтобы решить и переходить к следующему, затем заявлениеJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 DB. Transaction не ждет обещания. Все, чтобы решить и переходить к следующему, затем заявление

Сообщение Anonymous »

У меня есть следующий код в функции < /p>

Код: Выделить всё

          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
})
}

Здесь, когда InsertSurvey выполняется после достижения «return Promise.all(arrayOfPromisesForAssetInsertion)», код переходит к «возврату «вывода», т.е. // LINE OUTPUT. Следующий «console.log(valuesAfterAssetInsertion) )" не достигнут. Точка // DOES NOT REACH HERE не достигнута. Ошибки нет, поскольку даже catch не достигнут.
Почему DB.transaction не достигает точки «console.log(valuesAfterAssetInsertion)»

Подробнее здесь: https://stackoverflow.com/questions/793 ... -next-then
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»