Firefox插件OS.File.DirectoryIterator超时

OS.File.DirectoryIterator timeout in Firefox Addon

本文关键字:DirectoryIterator 超时 File OS 插件 Firefox      更新时间:2023-09-26

我有一种情况,我在Firefox中迭代一个文件目录,如下所示:

let iterator = OS.File.DirectoryIterator(dir);
let itPromise = iterator.forEach(entry){
return OS.File.read(entry.path).then(array => {
 return anotherPromise(array).then (
.
.
.
 }
});
return itPromise.then( function () {
//DO stuff after iterator is completely done
});

似乎这个迭代器承诺有时会超时,并且永远不会到达迭代器后的//Do操作行。如果我对少量文件这样做,它似乎工作得很好-但是如果我的迭代器似乎花费了超过一分钟(或某个未知的神奇数字),则承诺永远不会返回。火狐是不是在做什么关闭我的操作系统?文件迭代器?

我在这里看到一个bug报告:https://bugzilla.mozilla.org/show_bug.cgi?id=1279389

表示存在一个文件。reset_worker_delay首选项,但我似乎无法在Firefox 47或我下载的任何开发人员版本中找到它。

就是这个导致了我的问题——迭代器花了太长时间,因此firefox不会跳转到下一部分吗?

我是DirectoryIterator的作者。

  1. 通常情况下,像超时这样的事情应该发生的唯一情况是如果您的代码在关机期间执行。是这样吗?

  2. Preference osfile.reset_worker_delay仅在Nightly或Developer Edition上可用。是的,这个pref很可能有一个bug。如果你能提供一个最小的样本,我们可以复制,这将是非常有帮助的。为了在你这边进行测试,你可以看到如果你将值设置为非常高的数字(例如1000000)会发生什么。

相关文章:
  • 没有找到相关文章