【发布时间】:2018-07-02 12:42:24
【问题描述】:
我知道我可以在 typescript 中获取我的资产目录中的文本文件的内容,例如
this.http.get('assets/data/file_1.txt')
.subscribe(data=>{
let obj = data['_body'];
console.log("obj "+JSON.stringify(obj)); // This log the content of the file
});
是否可以向该请求传递参数/值?
我的意思是,在我的情况下,我有几个文件(file_4.txt、file_5.txt、file_1.txt),我想对其中的任何一个重复请求(数字和索引可能随时间变化)。所以我的代码听起来像
var fileIndex=[4,5,1];
for (i = 0; i < this.fileIndex.length; i++) {
this.http.get('assets/data/file_'+this.fileIndex[i]+'.txt')
.subscribe(data=>{
let obj = data['_body'];
console.log("obj "+JSON.stringify(obj));
console.log("This is file number "+this.fileIndex[i]); // problem is here
});
}
我无法记录以这种方式生成的三个请求中的任何一个的文件号。
在订阅中记录 this.fileIndex[i] 返回“未定义”,我可以想象为什么。 get 请求是异步的,不能访问 i 的值。也许也是 fileIndex,不是吗?
那么,我可以将参数/值传递给请求,以便可以在订阅中获取它吗?或者,无论如何,我怎样才能访问 subscribe 函数中的 this.fileIndex[i] 值?
【问题讨论】:
标签: typescript ionic-framework ionic3