Tom*_*ans 5 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
}
Run Code Online (Sandbox Code Playgroud)
我可以用这样的长格式函数:
audio_context.decodeAudioData( array_buffer, function( buffer) { /* do stuff */ } ) ;
Run Code Online (Sandbox Code Playgroud)
但如果我可以使用 lambda 函数,长期来看它会更干净、更容易。
编译后的 JS 出来了
audio_context.decodeAudioData(array_buffer, function () {
return _this.onDecode(buffer);
}, function () {
return _this.onError();
});
Run Code Online (Sandbox Code Playgroud)
所以我可以通过在函数声明中插入一个“缓冲区”参数来手动使其工作 - 但是我如何编写它以便 TypeScript 知道我想要做什么?
提前致谢 :)
只需在 lambda 函数中获取一个参数即可。干得好:
init()
{
audio_context.decodeAudioData( array_buffer, (buffer) => this.onDecode( buffer ) ) ;
}
onDecode( buffer:AudioBuffer )
{
// do things with buffer param
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5983 次 |
| 最近记录: |