downloads.erase()

downloads API 的 erase() 函数会从浏览器的下载历史记录中清除匹配的 DownloadItems,而不会从磁盘删除下载的文件。

要从磁盘中删除文件,您需要使用 downloads.removeFile()

这是一个异步函数,返回一个 Promise

注意:如果您想从磁盘删除下载的文件从历史记录中清除它,您必须在调用 erase() 之前调用 downloads.removeFile()。如果您尝试反向操作,在调用 downloads.removeFile() 时会收到错误,因为根据浏览器来看,该文件已不存在。

语法

js
let erasing = browser.downloads.erase(
  query                    // DownloadQuery
)

参数

query

一个 downloads.DownloadQuery 对象。

返回值

一个 Promise。如果调用成功,Promise 将会以一个代表被清除的 DownloadItems ID 的整数数组来 fulfilled。如果没有找到与查询参数匹配的项,数组将为空。如果调用失败,Promise 将会以一个错误消息被 rejected。

示例

清除最近一次下载

js
function onErased(ids) {
  console.log(`Erased: ${ids}`);
}

function onError(error) {
  console.log(`Error erasing item: ${error}`);
}

let erasing = browser.downloads.erase({
  limit: 1,
  orderBy: ["-startTime"],
});

erasing.then(onErased, onError);

清除所有

js
function onErased(ids) {
  console.log(`Erased: ${ids}`);
}

function onError(error) {
  console.log(`Error erasing item: ${error}`);
}

let erasing = browser.downloads.erase({});
erasing.then(onErased, onError);

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.downloads API。