将块变量传递给已有参数的回调函数
Pass a block variable to a callback function that has already arguments
这是我的回调:
function evaluateServiceResponse(err, response){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
这是我的回调用户:
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse);
这是完整的代码。在 process
中,我创建了一个对我的数据库的块引用:
process(function(){
...
let db=null;
db = mongoClient.connect(connectionURL);
//Do whatever to create jsonRecords
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse);
...
});
invokeServiceMethod
与服务对话,然后调用回调将服务响应传递给它。
如何在我的回调中获取数据库引用 evaluateServiceResponse
?
谢谢。
使用闭包:
function evaluateServiceResponse(db){
return function(err, response){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
}
并像这样使用:
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse(db));
我相信这就是你想要的:
function evaluateServiceResponse(err, response, db){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
process(function(){
let db=null;
db = mongoClient.connect(connectionURL);
//Do whatever to create jsonRecords
mysoapclient.invokeServiceMethod(jsonRecords, (err, response) => {
return this.evaluateServiceResponse(err, response, db);
});
});
这是我的回调:
function evaluateServiceResponse(err, response){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
这是我的回调用户:
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse);
这是完整的代码。在 process
中,我创建了一个对我的数据库的块引用:
process(function(){
...
let db=null;
db = mongoClient.connect(connectionURL);
//Do whatever to create jsonRecords
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse);
...
});
invokeServiceMethod
与服务对话,然后调用回调将服务响应传递给它。
如何在我的回调中获取数据库引用 evaluateServiceResponse
?
谢谢。
使用闭包:
function evaluateServiceResponse(db){
return function(err, response){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
}
并像这样使用:
mysoapclient.invokeServiceMethod(jsonRecords,this.evaluateServiceResponse(db));
我相信这就是你想要的:
function evaluateServiceResponse(err, response, db){
db.answerCollection.insert({id: response["serviceAnswer"]["id"]}); //problem is this line
}
process(function(){
let db=null;
db = mongoClient.connect(connectionURL);
//Do whatever to create jsonRecords
mysoapclient.invokeServiceMethod(jsonRecords, (err, response) => {
return this.evaluateServiceResponse(err, response, db);
});
});