Typescript 类型脚本转换为异步
我有以下职能:Typescript 类型脚本转换为异步,typescript,asynchronous,callback,Typescript,Asynchronous,Callback,我有以下职能: function f (x : number): number { return 1/x } function g (x : number): number { return x*x } function h (x : number): number { return f(g(x)) } 我正试图通过回调将h(如果需要的话,也可以使用g和f)转换为异步函数,而不是通过promises转换,但我坚持这样做 我知道每个函数都应该有一个函数回调作为参数,但我不知道如何做。我
function f (x : number): number {
return 1/x
}
function g (x : number): number {
return x*x
}
function h (x : number): number {
return f(g(x))
}
我正试图通过回调将h(如果需要的话,也可以使用g和f)转换为异步函数,而不是通过promises转换,但我坚持这样做
我知道每个函数都应该有一个函数回调作为参数,但我不知道如何做。我们可以从提供错误管理示例的
f
开始:
function f(x: number, cb: (err: any, result?: number) => void): void {
if (x === 0)
cb(new Error("Cannot call 'f' with zero"))
else
cb(null, 1/x)
}
以下是如何使用它:
f(5, (err, result) => {
if (!err)
console.log("… do something with:", result)
})
g
功能很简单:
function g(x: number, cb: (err: any, result?: number) => void): void {
cb(null, x * x)
}
而且h
看起来就像是一个好的老式回调地狱:
function h(x: number, cb: (err: any, result?: number) => void): void {
g(x, (err, gResult) => {
if (err)
cb(err)
else
f(gResult, cb)
})
}
感谢您的怀旧之情。不过,这并没有什么不同步的。这是一个非常笨拙的同步代码:)@johnyhk我假设问题中描述的操作代表异步的东西。我们可以编写
setTimeout
,但这可能不是作者想要的;将它们转换为异步是什么意思?