我想要做的是每五秒钟联系一次WooCommerce以检查产品是否已被编辑。我可以通过要求res [0] .date_modified来做到这一点。然后我比较它创建的时间(res [0] .date_created)和最后修改。
如果值相同,则产品从未被修改过。但是,如果产品被修改,我不再想要比较产品创建和修改的时间。
我现在想要将时间与上次修改时间进行比较" res [0] .date_modified"所以我可以看到它是否会被另一次修改。
这就是我的想法:
function lookForEdit(){
WooCommerce.get('products/', function(err, WooData, res) {
res=JSON.parse(res)
var comp = res[0].date_created;
if(comp == res[0].date_modified){
console.log("the product haven't been modified")
}
else{
console.log("The product have been edited")
comp = res[0].date_modified;
}
})
}
setInterval(lookForEdit, 5000);
我理解为什么它不起作用,但我不知道如何解决它。
我该如何解决?
由于
我上周也问了这个问题,并且认为我得到了一个可行的答案。我得到了答案:
var comp;
function lookForEdit(){
WooCommerce.get('products/', function(err, WooData, res) {
res=JSON.parse(res)
//console.log(res[0])
if(comp == undefined){
console.log("The product haven't been editet")
comp = res[0].date_created;
}
if(comp != res[0].date_modified){
comp = res[0].date_modified;
console.log("The product have been edited")
//editAPI(res[0])
}
});
};
然后我意识到,当我将函数放在for循环中来检查多个项目时,这不会起作用。我无法使用" comp"如果检查索引0和索引1。
再次感谢你!
我想要实现的目标
var comp;
function lookForEdit(){
WooCommerce.get('products/', function(err, WooData, res) {
res=JSON.parse(res)
for(var i = 0; i < res.length; i++ ){
if(comp == undefined){
console.log("The product haven't been editet")
comp = res[i].date_created;
}
if(comp != res[i].date_modified){
comp = res[i].date_modified;
console.log("The product have been edited")
//editAPI(res[i])
}
}
});
};
答案 0 :(得分:0)
您可以使用数组或对象在变量comp
中存储多个值。在这种情况下,您可以使用comp = res[0].date_modified
,而不是使用comp[0] = res[0].date_modified
分配值。
完整示例:
var comp = {};
function lookForEdit(){
WooCommerce.get('products/', function(err, WooData, res) {
res=JSON.parse(res)
for (var i = 0; i < res.length; ++i) {
//console.log(res[i])
if(comp[i] == undefined){
console.log("The product haven't been editet")
comp[i] = res[i].date_created;
}
if(comp[i] != res[i].date_modified){
comp[i] = res[i].date_modified;
console.log("The product have been edited")
//editAPI(res[i])
}
}
});
};
答案 1 :(得分:0)
您可以使用功能闭包来维护产品的状态,即它是旧的。
var checkIfModified = function() {
var isNew = true;
return function() {
var dateProp = isNew ? 'date_created' : 'date_modified';
var time = test.shift();
if( time !== product[dateProp]) {
product.modified = time;
isNew = false;
console.log( 'modified')
} else {
console.log('it is same');
}
}
}
var lookForEdit = checkIfModified();
for( /*your for loop to check for edit*/ ) {
lookForEdit();
}