gpt4 book ai didi

javascript - Node 骑士评估内部的变量未定义

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

我的应用程序有 API 端点,其中之一用于删除。唯一的data-id由参数/feeds/:feedID传递,该参数访问Controller类,将参数值赋予Operation类的变量feedID。问题:变量 feedIDhorseman 实例内变为 undefined。代码:

Controller :访问端点时执行。它获取参数值并将其存储在Operation类的变量中以供进一步使用

* destroy(request, response) {
const googleAlertsOperation = new GoogleAlertsOperation()

googleAlertsOperation.feedID = request.param('feedID')
...

操作:使用新的feedID值,它应该继续执行

* deleteRSSFeed() {
var feedID = this.feedID //<-- Has the value passed from the Controller

return new Promise((resolve, reject) => {
horseman
.userAgent(this.userAgent)
.open('https://google.com/alerts')
.evaluate(function() {
try {
return '#manage-alerts-div li[data-id="' + feedID + '"]' //<-- Undefined
} catch(e) {
reject(e)
}
}).then(function(data) {
console.log(data)
})
.close()
}).catch((err) => {
this.addError(HTTPResponse.STATUS_INTERNAL_SERVER_ERROR, reject(err))

return false
})
}

我在没有实例化新 Promise 的情况下尝试了它,但是同样的问题。传递 this.feedID 也会变成 未定义,而不是传递在顶部创建的变量 feedID

最佳答案

我明白了。我必须按照 documentation 中的示例进行操作并使其像这样:

.evaluate(function(selector) {
return 'li[data-id="' + selector + '"]'
}, this.feedID)
.then(function(data) {
console.log(data)
})

注意参数选择器。就是这样。

关于javascript - Node 骑士评估内部的变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42104229/

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