Mozilla给了使用Firefox的Downloads.jsm的一些示例代码,我试着用Downloads.jsm一次下载几个文件。
但当我试着像这样使用它时:
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以串行方式一次下载一个文件?
发布于 2013-12-24 05:46:04
download.start是一个异步方法,它返回一个承诺,因此在第一个下载启动后立即调用moveOnToNextDownload。
相反,您可以执行download.start().then(moveOnToNextDownload)。
https://stackoverflow.com/questions/20754580
复制相似问题