gpt4 book ai didi

javascript - 有条件地从特定的 Promise 开始 Promise 链

转载 作者:行者123 更新时间:2023-12-03 03:15:45 25 4
gpt4 key购买 nike

我有一个简化的 promise 链,如下所示:

readDB(file)
.then(parseQuery)
.catch((err) => console.error(err))
.then(selectRandom)
.catch((err) => console.error(err))
.then(requestTrailer)
.catch((err) => {
if(err == 'Got error: No results found') {
throw new Error(err);
}
})
.then(renderMovie)
.catch((err) => console.error(err));

基本上,我正在从文件中读取电影列表并将其传递,以便我可以找到电影的预告片。我不想做的是在出现错误的情况下,重复从 selectRandom 开始的 promise 链,而不必 readDBparseQuery

现在我有一个工作代码,但它定义了链两次:

//I wrap the second round of promises in a function
selectMovie(){
selectRandom(movies)
.then(requestTrailer)
.catch((err) => {
if(err == 'Got error: No results found') {
selectMovie(); //Start the function again
throw new Error(err);
}
})
.then(renderMovie)
.catch((err) => console.error(err));
}

//Now start the promise chain
readDB(file)
.then(parseQuery)
.catch((err) => console.error(err))
.then(selectRandom)
.catch((err) => console.error(err))
.then(requestTrailer)
.catch((err) => {
if(err == 'Got error: No results found') {
selectMovie(); //Start second round
throw new Error(err);
}
})
.then(renderMovie)
.catch((err) => console.error(err));

有更简单的方法吗?

最佳答案

通过调用 selectMovie() 函数替换 .then(selectRandom) 及其后面的所有内容。

关于javascript - 有条件地从特定的 Promise 开始 Promise 链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776220/

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