2017-06-26 13 views
0

tmdbからランダムなムービータイトルを取得しようとしていますが、コードはうまくいきますが、厄介な問題があります。absolutely nothingを返します。私は結果を得るまで?私はtmdbの映画のID番号にギャップがあると思います!tmdbは何も返さず、値を返す場合があります

const tmdb = require('tmdbv3').init('---'); 
 

 
function randomMovie(callback){ 
 
      var r = Math.floor(Math.random()*1000); 
 
      tmdb.movie.info(r, (err ,res) => { 
 
\t   var x = res.title 
 
\t   callback(x); 
 
     })}; 
 
      
 
randomMovie(function(title){console.log(title)})

答えて

0

でも彼のテストが失敗しているので、私は、このAPIを使用することをお勧めしません。あなたが直面している問題は、データを持たない数字がコールバックを返さない場合でも、エラーを処理できない(何もスローしないため)ということです。これは私がそのAPIから取得することができる最高です:

'use strict'; 

const tmdb = require('tmdbv3').init('8b39b6f141f42e463b507151122d0971'); 

function randomMovie(callback) { 
    const r = Math.floor(Math.random() * 1000); 
    tmdb.movie.info(r, (err, res) => { 
     const x = res.title 
     callback(x); 
    }) 
}; 

function tryTenTimes() { 
    let firstTitle; 
    for (let i = 0; i < 10; i++) { 
     randomMovie(title => { 
      if (!firstTitle) { 
       firstTitle = title; 
       console.log(firstTitle); 
      } 
     }); 
    } 
} 

tryTenTimes(); 

それは10が尋ねると、最初の有効なものを取るん醜い回避策は、です。

編集:私は、whileループとのいずれかを実行するように頼まれたが、これは私はあなたが応答ヘッダを検査し、私はあなたがしている賭けステータスコードを見ればそれに

'use strict'; 

const tmdb = require('tmdbv3').init('8b39b6f141f42e463b507151122d0971'); 

function randomMovie(callback) { 
    const r = Math.floor(Math.random() * 1000); 
    tmdb.movie.info(r, (err, res) => { 
     const x = res.title 
     callback(x); 
    }) 
}; 
function tryWhileTimes() { 
    let firstTitle; 
    while (!firstTitle) { 
     return new Promise((resolve, reject) => { 
      randomMovie(title => { 
       if (!firstTitle) { 
        firstTitle = title; 
        console.log(firstTitle); 
        resolve(); 
       } 
      }); 
     }); 
    } 
} 

tryWhileTimes() 
+0

このコードは同じことをしています!このタスクを実行できる優れたAPIがありますか?私は検索し、これが唯一のものだと思われます! – cockoh10uv

+0

固定電話番号を使わずに、ちょうどタイトルを取得したときに停止することをお勧めします また、中止するmax_attemptフラグを持っています – Shivam

+0

私はこの中でどのようにループを行うことができますか教えてください場合? @ Shivam – cockoh10uv

0

を行うために管理方法ですIDが削除されてから404(見つからない)が返されます。そして、あなたは何も起こっていないでしょう。TMDB APIは何が起こっているのかをトラブルシューティングするためのコードを含む一連のエラーを返します。それは文書化されたhereです。

何をしているかによって、事前に利用可能なIDを知ることができます。ダウンロード可能なファイルは、in the documentationについて読むことができます。

関連する問題