我试图使用OneDrive JS SDK下载文件,所以我使用了 Microsoft 的代码:
// Download a file from OneDrive
let fs = require('fs'); // requires filesystem module
client
.api('/me/drive/root/children/Book.xlsx/content')
.getStream((err, downloadStream) => {
if (err) {
console.log(err);
return;
}
let writeStream = fs.createWriteStream('../Book1.xlsx');
downloadStream.pipe(writeStream).on('error', console.log);
});
因为我也想让它在浏览器中工作(不仅仅是在 Node 中),所以我首先尝试了一些用于浏览器的流库,但没有任何工作。最终,我只使用了 REST API 和fetch()
(SDK 是 REST API 的包装器)。
一个简单fetch(url)
的工作。所以我想知道,当单行可以完成这项工作时,为什么 MS 会遇到上面所有流代码的麻烦?
特别是流的性能比fetch()
. 例如,下载大文件时 fetch 会冻结应用程序,而流不会?还有其他区别吗?