implement cancellation for maplibre fetch [#1]

This commit is contained in:
Brandon Liu
2021-06-08 18:21:00 +08:00
parent 1bceca9535
commit 4936526d19

View File

@@ -206,18 +206,22 @@ export const addProtocol = maplibre_instance => {
let z = result[2]
let x = result[3]
let y = result[4]
var cancel = () => {}
instance.getZxy(+z,+x,+y).then(val => {
if (val) {
let headers = {'Range':'bytes=' + val[0] + '-' + (val[0]+val[1]-1)}
fetch(pmtiles_url,{headers:headers}).then(resp => {
const controller = new AbortController()
const signal = controller.signal
fetch(pmtiles_url,{signal:signal,headers:headers}).then(resp => {
return resp.arrayBuffer()
}).then(arr => {
callback(null,arr,null,null)
})
cancel = controller.abort
} else {
callback(null,new Uint8Array(),null,null)
}
})
return { cancel: () => { console.log("Cancel not implemented") } }
return { cancel: cancel }
})
}