gpt4 book ai didi

javascript - js : promises inside a while- true loop

转载 作者:行者123 更新时间:2023-11-28 17:29:32 26 4
gpt4 key购买 nike

我在从 YouTube 播放列表中检索所有数据时遇到一些困难。这是我的代码:

function getApiUrl(nextPageToken) {
return '<api_url>' + '&playlistId=' + '<playlistId>' + (nextPageToken !== null ? '&pageToken=' + nextPageToken : '');
}

function getPlaylist() {
var titles = [],
nextPageToken = null,
url = getApiUrl(null);

while(true) {
// returns new Promise(...)
doRequest(url).then(data => {
// process data : push items to titles array
nextPageToken = data.nextPageToken;
});

if (nextPageToken === undefined) {
break;
}

url = getApiUrl(nextPageToken);
}

// returns empty array
return titles;
}

尝试打破数据处理程序内的循环会导致 SyntaxError: Illegal break statement

最佳答案

您遇到的问题是循环是同步的,但 nextPageToken 的分配是异步的。我实际上不确定,但是这样的事情会使用递归来工作吗

function getList(url){
return doRequest(url).then(data => {
if(data.nextPageToken !== undefined){
//titles.push()... whatever you're putting into titles
var nextUrl = getApiUrl(data.nextPageToken);
return getList(nextUrl);
}else{
return;
}
});
}

关于javascript - js : promises inside a while- true loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com