将参数传递给TypeScript中的回调函数

时间:2013-09-06 12:14:01

标签: lambda callback parameter-passing typescript

这是我关于SO的第一个问题,如果我以某种方式搞砸了,那么道歉:)

我正在尝试使用Typescript 0.9.1.1播放WebAudio,但我目前仍然使用decodeAudioData函数。

decodeAudioData需要几个参数:音频数据,成功回调和错误回调。成功回调传递了我需要访问的“缓冲区”参数,我想使用lambda函数执行此操作,但我不知道该怎么做。

我的(非工作)代码是:

init()
{
    audio_context.decodeAudioData( array_buffer, () => this.onDecode( buffer ) ) ;
}

onDecode( buffer:AudioBuffer )
{
//  do things with buffer param
}

我可以尝试这样的长形函数:

audio_context.decodeAudioData( array_buffer, function( buffer) { /* do stuff */ } ) ;

但如果我可以使用lambda函数,它会更长,更容易。

编译的JS出现为

audio_context.decodeAudioData(array_buffer, function () {
        return _this.onDecode(buffer);
    }, function () {
        return _this.onError();
    });

所以我可以通过在“缓冲区”参数中插入函数声明来手动工作 - 但是如何编写它以便TypeScript知道我正在尝试做什么?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

只需在lambda函数中取一个参数。你走了:

init()
{
    audio_context.decodeAudioData( array_buffer, (buffer) => this.onDecode( buffer ) ) ;
}

onDecode( buffer:AudioBuffer )
{
//  do things with buffer param
}