我不推薦使用此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()
這段代碼是做同樣的事!有沒有更好的API可以完成這項任務?我搜索,似乎這是唯一一個那裏! – cockoh10uv
我會建議不要撥打固定的電話號碼,而應該使用一段時間,並停止只是當你得到一個標題, 也有一個max_attempt標誌,它會停止,而 – Shivam
你能告訴我怎麼可以做一個while循環在這個案件? @Shivam – cockoh10uv