我正在使用Angular 6.0.3,并在将文件上传到ipfs守护程序时尝试使用进度处理程序。该文件已正确上载,但是我在处理程序中使用的变量未在handler()函数外部更新。这两个功能都包含在一个组件中。
我认为这是一个棘手的Typescript / javascript范围问题,但我似乎无法弄清楚。有人有指针吗?
//we have a global variable that we use to check if we have started uploaded
isUploading = false;
这是uploadFile函数
uploadFile() {
//We load data into a buffer
const buf = new Buffer("string");
//Then we write the buffer to the ipfs daemon
this.ipfs.files.add(buf, {progress:this.handler})
.then((result) => {
console.log("Result isUploading = " + this.isUploading);
})
.catch((err) => {
console.log(err)
});
}
这是处理程序函数
handler (p) {
this.isUploading = true;
console.log("Handler isUploading = " this.isUploading);
}
明确地, isUploading 值在 handler()函数中为true,在 uploadFile()函数中为false!