onerror 的签名与 callback 不同，在 Stream event 中是 function (exception) { ... }，所以这里需要进行转换