gpt4 book ai didi

javascript - Meteor bindEnvironment 中的规则引擎函数丢失了 this 对象

转载 作者:行者123 更新时间:2023-12-03 03:40:54 25 4
gpt4 key购买 nike

var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment(function (R) {
R.when(this.request.type == 'some-type');
})
}];

在上面的代码中,this.request 未定义,因为 this 指向 Meteor 对象而不是函数对象。经过研究发现使用箭头函数可能会解决该问题。尝试使用它,如下所示。

var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment((R) => {
R.when(this.request.type == 'some-type');
})
}];

还是不行,请帮我绑定(bind)这个对象

最佳答案

您可以使用 Meteor.bindEnvironment 删除,也可以仅使用传递给 condition 回调的第二个参数 - 它与假设的 this 相同。 https://github.com/mithunsatheesh/node-rules/blob/master/lib/node-rules.js#L94

类似这样的事情:

var process_request_rule = [
{
"name": "rule-name",
"condition": Meteor.bindEnvironment(function(R, session) {
R.when(session.request.type == 'some-type');
})
}];

关于javascript - Meteor bindEnvironment 中的规则引擎函数丢失了 this 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45630107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com