2017-03-01 14 views
2

私はここで少し詰まっています。未知(約束)TypeError:スポーンは関数ではありません

export const downloadFromYoutube = (download) => { 
    console.log("Hello"); 
    return dispatch => { 
     var YoutubeMp3Downloader = require('youtube-mp3-downloader'); 

     var YD = new YoutubeMp3Downloader({ 
      "ffmpegPath": "/usr/local/Cellar/ffmpeg/3.2.2/bin/ffmpeg",  // Where is the FFmpeg binary located? 
      "outputPath": "/Users/dominik/Coding/youtube-downloader-papa/downloads", // Where should the downloaded and encoded files be stored? 
      "youtubeVideoQuality": "highest",  // What video quality should be used? 
      "queueParallelism": 2,     // How many parallel downloads/encodes should be started? 
      "progressTimeout": 2000     // How long should be the interval of the progress reports 
     }); 

     console.log("Hello"); 
     YD.on("finished", data => dispatch({ type: "FINISHED", payload: data })); 
     YD.on("error", error => dispatch({ type: "ERROR", payload: error })); 
     YD.on("progress", progress => dispatch({ type: "PROGRESS", payload: progress })); 

     // dispatch a "starting" action 
     // dispatch({ type: "STARTING" }); 

     // start the download 
     YD.download("UDzGLMLhy80"); 
    } 
    }; 

をしかし、私は常に、次のエラーを取得しています:私はこのようになります。これは私の行動の作成者にReduxの-サンクで非同期要求を提出しています

TypeError: spawn is not a function

私は電子で反応/ Reduxのを使用しています。私はまた、ダウンロード機能の代わりにタイムアウト機能を使用するとき、redux-thunkが動作することについて言及する必要があります。しかし、上記のコード&のyoutubeダウンローダーライブラリの使用は、私は単純なjavascript/nodejsファイルに入れて実行するとうまくいきますので、Reactで約束を処理する方法と関係があるようです。

Uncaught (in promise) TypeError: spawn is not a function(…)(anonymous function) @ processor.js:135proto._getFfmpegPath @ capabilities.js:90proto._spawnFfmpeg @ processor.js:115proto.availableFormats.proto.getAvailableFormats @ capabilities.js:514(anonymous function) @ capabilities.js:564fn @ async.js:746(anonymous function) @ async.js:1213(anonymous function) @ async.js:166(anonymous function) @ async.js:706(anonymous function) @ async.js:167async.waterfall @ async.js:710proto._checkCapabilities @ capabilities.js:561(anonymous function) @ processor.js:287fn @ async.js:746(anonymous function) @ async.js:1213(anonymous function) @ async.js:166(anonymous function) @ async.js:706(anonymous function) @ async.js:167async.waterfall @ async.js:710proto._prepare @ processor.js:284proto.exec.proto.execute.proto.run @ processor.js:420proto.saveToFile.proto.save @ recipes.js:28(anonymous function) @ YoutubeMp3Downloader.js:151emitOne @ events.js:77emit @ events.js:169(anonymous function) @ index.js:113emitOne @ events.js:77emit @ events.js:169ClientRequest._connect @ request.js:235(anonymous function) @ request.js:128

答えて

2

スポーンはnodejsの構造です:

はここで完全なエラーログです。フレームワークは、メソッドを持っていないとして反応します。このライブラリはサーバー側(nodejs)で使用されます。反応を介してトリガーできるhttp APIを公開することができます。 http apiは、nodejsサーバーでライブラリを起動できます。

+0

ありがとう、それはすべてそれを説明します。私は何とか自分のアクションクリエーターから自分の電子レンダラープロセスを呼び出す必要があります。あなたがこれを行う方法を知っていれば、私は[新しい質問](http://stackoverflow.com/questions/42531901/call-renderer-process-from-react-redux-action-electron)を提出しました。あなたの質問に答えてくれて以来、ここでは関係していないようです。 –

関連する問題