gpt4 book ai didi

javascript - 函数可以在正确的情况下自动调用回调或返回 promise 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:50 26 4
gpt4 key购买 nike

我已经使用 JS 工作了一段时间,在阅读了很多关于回调、 promise 以及现在广受好评的 async/await 的内容之后(恕我直言,这实际上是使用 promise 的更优雅的方式),所以我想知道是否异步函数可以在特定条件下处理回调调用和返回 Promise。

我正在考虑一个有点这样的函数

function division (dividend, divisor, callback) {
if (divisor === 0) {
const err = new Error('Can not divide by zero')
if (callback) callback(err, null)
else return new Promise.reject(err)
} else {
if (callback) callback(null, (dividend/divisor))
else return new Promise.resolve(dividend/divisor)
}
}

那么就可以用两种方式调用

division(10, 2, (err, result) => {
if (err) console.log('Ops!')
else console.log(result)
})

division(10, 2)
.then((result) => {
console.log(result)
}).catch((err) => {
console.log(err)
})

这个想法会以某种方式起作用吗?

如果某种方式有效,以这种风格实现函数会是一个好主意吗?

如果某种方式有效并且是个好主意,它可以改进吗?

提前致谢!我真的很喜欢研究语言机制,这是提高自己对任何事物的标准思维的好方法。

最佳答案

所有的 Google API 都是这样实现的。例如这里:https://cloud.google.com/nodejs/docs/reference/compute/0.10.x/Zone#get

If the callback is omitted, we'll return a Promise.

关于javascript - 函数可以在正确的情况下自动调用回调或返回 promise 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51850306/

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