maplibre: cancel correctly captued in closure [#6]

This commit is contained in:
Brandon Liu
2021-06-08 18:41:58 +08:00
parent 4936526d19
commit f288f60239

View File

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