首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用火狐的Downloads.jsm一次下载一个文件,同时观察它们?

使用火狐的Downloads.jsm一次下载一个文件,同时观察它们?
EN

Stack Overflow用户
提问于 2013-12-24 03:48:21
回答 1查看 1.1K关注 0票数 2

Mozilla给了使用Firefox的Downloads.jsm的一些示例代码,我试着用Downloads.jsm一次下载几个文件。

但当我试着像这样使用它时:

代码语言:javascript
复制
Task.spawn(function () {

  let list = yield Downloads.getList(Downloads.ALL);

  let view = {
    onDownloadAdded: download => console.log("Added", download),
    onDownloadChanged: download => console.log("Changed", download),
    onDownloadRemoved: download => console.log("Removed", download),
  };

  yield list.addView(view);
  try {
    let download = yield Downloads.createDownload({
      source: "http://www.mozilla.org/",
      target: OS.Path.join(OS.Constants.Path.tmpDir, "example-download.html"),
    });
    list.add(download);
    download.start();
  } finally {
    yield list.removeView(view);

    moveOnToNextDownload();
  }

}).then(null, Components.utils.reportError);

在我使用moveOnToNextDownload()进行下一次下载时,将启动多个下载,并并行下载文件。

如何使用Downloads.jsm以串行方式一次下载一个文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-24 05:46:04

download.start是一个异步方法,它返回一个承诺,因此在第一个下载启动后立即调用moveOnToNextDownload

相反,您可以执行download.start().then(moveOnToNextDownload)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20754580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档