我不推荐使用此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