javascript - 如何将对象/字符串与循环函数节点 js 进行比较?
问题描述
我一直在尝试查找有关此特定主题的文档,但没有成功。我已经构建了一个个人脚本,它可以找到一个列表并将其发布到一个不和谐的网络挂钩上,这个脚本每 60 秒循环一次,我要解决的问题是每次循环时,它都会将相同的产品发布到web-hook,我正在尝试找到一种方法来比较它们,以便如果它是相同的项目,它不会重新发布而是记录,因为新列表不会经常发布。我遗漏了一些代码,因为其中包含私人信息,但它只是使用 axios 的标准 https 请求。如果您查看代码,您会看到我试图弄清楚如何比较其中一个对象,但它显然不起作用,因为标题总是 = 他们自己。任何指向文档或示例的内容将不胜感激!
setInterval(function(){
axios(config)
.then(function (response) {
let picture = (response.data.listings[0].photos[0]._links.small_crop.href);
let link = (response.data.listings[0]._links.web.href);
let title = (response.data.listings[0].title);
let price = (response.data.listings[0].price.amount);
let condition = (response.data.listings[0].condition.display_name);
let description = (response.data.listings[0].description);
if(title === title) {
console.log("No New Pedals")
}
else{
const msg = new webhook.MessageBuilder()
.setImage(picture)
.setName("️ " + "New Listing Found!" + " ️")
.setTitle(title)
.addField(price, condition + " Condition")
.setColor("#f6870f")
.setURL(link)
Hook.send(msg);
}})
},10000);
解决方案
只需使用一个范围比setInterval
回调更大的变量:您可以使用它来跟踪之前的值title
:
let prevTitle; // Add this variable
setInterval(function(){
axios(config).then(function (response) {
// ...
if(title === prevTitle) { // Compare with it
console.log("No New Pedals");
} else {
prevTitle = title; // Keep track of the change
// ...
}
});
}, 10000);
推荐阅读
- node.js - “无法绑定到‘ngModel’,因为它不是‘输入’的已知属性”
- ios - GoogleAutocompleteViewController:委托的取消方法不起作用
- reactjs - Typescript 导出默认值:React.FunctionComponent
- visual-studio-2010 - How to compile LuaJit MSVC with DLUAJIT_ENABLE_LUA52COMPAT x86?
- reactjs - How to have react-datepicker update Formik nested object
- excel - Finding parameters values of growth function?
- mysql - Cannot connect to MYSQL Server using workbench
- r - 从R中的多个变量创建一个变量
- javascript - 为什么随机数生成器不显示在 html 页面上?
- python - 根据其他两个标志的值计算标志