gpt4 book ai didi

javascript - 将 fetch 调用到 fetch 的 Promise 中是一种不好的做法吗?

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

我正在培训 fetch() 的使用。

正如您在下面的代码中看到的,我决定将一次提取放入第一次提取的 promise 中,但即使该代码工作正常,我也不确定这是一个好还是一个坏做法。

如果编写的代码是一种不好的做法,有人可以向我提出一个好的做法吗?

提前谢谢您。

function callOne () {
let q = 'q='+input.value;
fetch(urlOne)
.then(res => res.json())
.then(data => {
console.log(data);
callTwo(q);
})
.catch(err => {
console.log(err);
});
}

function callTwo(q) {
fetch(urlTwo)
.then(res => res.json())
.then(data => {
console.log(data);
})
.catch(err => {
console.log(err);
});
}

最佳答案

这取决于,当它们像在代码中一样独立时,您可以并行运行它们。像这样:

Promise.all([callOne(), callTwo()]).then(([dataOne, dataTwo]) => {/**/})

这样它们就不会嵌套,并且可以更好地维护它们。并且会做得更快。但是,如果您必须等待第一个数据传递到第二个数据,那么您必须像以前一样这样做。不过,我想我会这样写:

callOne()
.then(/*do something with first response and pass to second call*/)
.then(callTwo)
.then(/*do something with second data*/)

在这两种情况下,如果在调用函数中返回获取的数据会更好。 return fetch(...).then(...).catch(...) 这样你就可以像正常链接 Promise 一样链接那些内容。 callOne().then(...)

关于javascript - 将 fetch 调用到 fetch 的 Promise 中是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46099156/

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