我有以下代碼:
export const blSaveRecord = async (data) => {
const params = new URLSearchParams()
params.append('DocumentNumber', data.DocNumber)
data.People.map((item, index) => {
params.append(`Person[${index}].PersonDoc`, item.PersonDoc)
params.append(
`Person[${index}].Document[0].Base64File`,
`data:image/jpg;base64,${FileSystem.readAsStringAsync(item.image, {
encoding: FileSystem.EncodingType.Base64,
})}`
)
})
//THIS IS THE ISSUE:
console.log(params)
return axios
.post(url_SaveRecord, params)
.then(function (response) {
return {
status: true,
message: '',
}
})
.catch(function (error) {
return {
status: false,
message: error.message,
}
})
})
問題是 readAsStringAsync 方法是異步的,但我無法使用 await。我試圖呼叫另一個異步函式來創建這個方法并等待它,但這是不可能的。
問題是......我如何才能等待異步函式在地圖內完成?在異步完成之前,我不想進行下一次迭代。
謝謝。
uj5u.com熱心網友回復:
地圖回呼中的 Promise.all 異步函式更容易實作:
讓回應=等待 Promise.all(data.People.map((item, index)=>{
//你的代碼
}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/327716.html
標籤:javascript 反应原生 异步等待
下一篇:React-使用鉤子重構邏輯
