Electron-dl无法读取未定义的属性'then'

时间:2018-04-14 06:00:43

标签: javascript node.js electron

我正在使用electron-dl下载文件,但我似乎无法使其正常工作。 我做的几乎与文档中定义的完全一样,但我不知道出了什么问题。

错误:

我在主进程

上收到以下错误
TypeError: Cannot read property 'then' of undefined
    at EventEmitter.ipcMain.on ( \electron-dl-test\main.js:24:7)

如何重现(设置):

  1. 使用repo:https://github.com/mafar/electron-dl-test
  2. npm install然后npm start
  3. main.js:

      ipcMain.on('download', (ev, args) => {
        download(BrowserWindow.getFocusedWindow(), args.url, args.properties)
          .then(dl => console.log(dl.getSavePath()))
          .catch(console.error);
      })
    

    index.html as renderer:

      document.getElementById("download-file").onclick = function () {
        //
        var ipcRenderer = require('electron').ipcRenderer;
        ipcRenderer.send('download', {
          url: 'https://textfiles.com/100/ad.txt',
          properties: {
            saveAs: true,
            directory: 'C:\\'
          }
        });
        //
      }; 
    

    预览: enter image description here

1 个答案:

答案 0 :(得分:2)

download函数是electron-dl导出的对象的一部分。当需要模块时,您需要解构(ES6)或直接引用它(ES5):

const { download } = require("electron-dl") // ES6

var download = require("electron-dl").download // ES5