【问题标题】:Electron-dl Cannot read property 'then' of undefinedElectron-dl 无法读取未定义的属性“then”
【发布时间】:2018-04-14 14:21:53
【问题描述】:

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

错误:

我在主进程上收到以下错误

TypeError: Cannot read property 'then' of undefined
    at EventEmitter.ipcMain.on ( \electron-dl-test\main.js:24:7)

如何重现(设置):

  1. 使用回购:https://github.com/mafar/electron-dl-test
  2. npm install 然后npm start

ma​​in.js:

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

index.html 作为渲染器:

  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:\\'
      }
    });
    //
  }; 

预览:

【问题讨论】:

  • 不,应该这样问一个 SO 问题!!!

标签: javascript node.js electron


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-04-21
    • 2019-08-19
    • 2016-10-23
    • 2014-09-07
    • 2015-09-08
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多