gpt4 book ai didi

javascript - 如何有条件地发送异步请求作为 JavaScript 中的预请求?

转载 作者:行者123 更新时间:2023-12-03 01:44:40 26 4
gpt4 key购买 nike

我有一种情况,如果条件成立,那么我会

  • 发送请求,
  • 做一些有成功响应的事情,
  • 然后我将发送 requestTwo。

另一方面,如果条件为假,我会

  • 只需发送 requestTwo。

是否有最佳实践或更好/漂亮的方式来做到这一点?

请求是异步,下面是伪代码:

if (condition) {
sendRequestOne().then(function (response) {
// do some stuff
}).then(function () {
sendRequestTwo();
});
} else {
sendRequestTwo();
}
<小时/>

最佳答案

使用 ternary ? operator ,您可以在 sendRequestOne()Promise.resolve() 之间进行分支.

(condition ? sendRequestOne() : Promise.resolve()).then(sendRequestTwo)

演示

const sleep = ms =>
new Promise(resolve => { setTimeout(resolve, ms, ms) })

const labeled = label => async () => {
console.log(label)
console.log(`slept ${await sleep(1000) / 1000}s`)
}

const sendRequestOne = labeled('one')
const sendRequestTwo = labeled('two')

const demo = condition =>
(condition ? sendRequestOne() : Promise.resolve()).then(sendRequestTwo)

;(async () => {
console.log('condition: false')
await demo(false)
console.log('done')
await sleep(2000)
console.log('condition: true')
await demo(true)
console.log('done')
})()
.as-console-wrapper{max-height:100%!important}

关于javascript - 如何有条件地发送异步请求作为 JavaScript 中的预请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694278/

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