【发布时间】:2017-11-15 06:17:58
【问题描述】:
我正在尝试使用传单库创建 node.js 应用程序,但是我使用的 WMS 使用传单中不支持的基本身份验证,因此我扩展了 Tilelayer.WMS 以使用单独的请求并将其转换为base64。这一切正常,但是我对 node/javascript 还很陌生,不知道我应该如何传递对我的 tile 变量的引用,以便在以后的回调中可用。
readerLoaded(reader) {
console.log(reader.target.result);
//want to be able to do something like this in here
tile.src = reader.target.result;
},
createTile (coords, done) {
var tile = document.createElement('img');
//Removed non-relevant code setting up header options etc
var reader = new FileReader();
reader.onload = this.readerLoaded;
http.get(url, options).subscribe(
m => {reader.readAsDataURL(m.blob());},
error => {console.log(error);}
);
return tile;
}
如何传递对在每个 createTile 调用中创建的特定磁贴的引用,以便在随后的 readerLoaded 调用中可用?
还有一种有效的方法可以延迟 createTile 返回,直到 readerLoaded 回调完成?我知道如果我自己设计这个,它会是一个回调,它在它准备好时执行,但是因为我正在编辑一个现有的库,重写它的大部分似乎比它的价值付出更多的努力。
谢谢。
【问题讨论】:
-
reader.onload = () => { do something with tile };
标签: javascript node.js scope