有两个功能; function getThumbnail(url) {}
和function getVimeoData() {}
。
我正在使用fetch()
处理HTTP
的调用,以检索 Vimeo 中视频的缩略图的url
。 oEmbed 用于获取包含thumbnail_url
的视频的JSON数据。
功能如下:
async function getVimeoThumb(videoUrl) {
return await fetch(videoUrl)
.then(response => {
if (response.status !== 200) {
console.log('Error occurred while fetching thumbnail.');
return null;
}
return response.json();
})
.then(data => {return data['thumbnail_url']})
.catch(err => console.log(err.reason));
}
以上函数返回Promise,其值为[[PromiseValue]]: "{{thumbnail_url}}"
。在以下函数中获取返回的Promise值:
function getThumbnailUrl() {
let newUrl;
...
getVimeoThumb(url).then(result => {console.log(result)})
...
}
上面的函数将控制台日志返回为{{thumbnail_url}}
。
因此,我的问题是,是否有任何变通办法将获取的值{{thumbnail_url}}
存储在本地变量newUrl
中?
答案 0 :(得分:0)
您已经有一个局部变量(newUrl),因此在记录结果的位置只能将其保存在其中
function getThumbnailUrl() {
let newUrl;
...
getVimeoThumb(url).then(result => { newUrl = result; console.log(result) })
...
}
答案 1 :(得分:0)
@Nitich是正确的。但是,如果您要使用newUrl外,则可以尝试此操作。 newUrl将在全局范围内。
let newUrl;
function getThumbnailUrl() {
...
getVimeoThumb(url).then(result => { newUrl = result; console.log(result) })
...
}
或者干脆
...
getVimeoThumb(url).then(result => { newUrl = result; return newUrl; })
...
}
let newUrl = getThumbnailUrl(videoUrl);
我希望这会有所帮助。