Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.9.3
-
None
Description
Example: I define a basic service
```
namespace js Auth
service AuthSrv {
string signin(
1:string email,
2:string password
)
}
```
And set up a Auth es6 class that gonna handle the requests like this:
```
module.exports = class AuthSrv {
constructor()
async signin(email, password) {
try
....
}
}
```
and instantiate a thrift server like this:
```
let server = thrift.createServer(AuthProcessor, new AuthSrv());
```
In this scenario, i'm getting that this pointer is *undefined* when signin function is called. Looking at thrift generated code for the processor i saw this line:
```
if (this._handler.signin.length === 2) {
Q.fcall(this._handler.signin, args.email, args.password)
.then(.....)
}
```
If i change the fcall to:
```
if (this._handler.signin.length === 2) {
Q.fcall(this._handler.signin.bind(this._handler), args.email, args.password)
.then(.....)
}
```
everything works like a charm and this pointer is correctly assinged inside signin function call.
Attachments
Issue Links
- links to