【问题标题】:Change value of variable in a if-statment argument depending of the if-statments outcome根据 if 语句结果更改 if 语句参数中的变量值
【发布时间】:2017-09-06 20:27:51
【问题描述】:

我正在尝试每五秒联系一次 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);

我明白它为什么不起作用,但我不知道如何解决它。

我该如何解决?

谢谢

【问题讨论】:

  • 客户端如何知道这些信息?
  • @epascarello:它会轮询信息。所以它可以存储状态。

标签: javascript if-statement woocommerce product


【解决方案1】:

使用全局变量存储最后一个值就足够了,只需检查它是否先定义,如果没有则取date_create值。

当然,您可以检查date_modifed,前提是它没有为未修改的项目定义。

在这种情况下,您只需要检查是否定义了 date_modifed 值,如果是,则与 comp 进行比较(仍然是全局的)。然后如果有不同的存储新值。

PS:对不起,我不能写代码,因为我没有在遗嘱中写 javascript。我错误地回答了这个问题^^

这将是它的伪代码

global comp;

function(){
   if(comp not defined)
        comp = date_created

    if(comp != date_modified)
        //changed
        comp = date_modified;
}

【讨论】:

  • 谢谢!这正是我所需要的!
【解决方案2】:

好吧,马上,你设置comp = res[0].date_created,然后,如果它们相等,你设置comp = res[0].date_modified,但是下次你调用api时,你会用创建日期覆盖comp再次。您应该使用 2 个单独的变量来跟踪信息。您应该为要监控的值使用 2 个单独的更具描述性的名称。

【讨论】:

  • 是的,每次调用函数时,我都会用原始时间覆盖新值。但是如何在 If 语句中将一个变量替换为另一个变量?
  • 我想我没有遵循您所说的“在 if 语句中用另一个变量替换变量”的意思。 comp 本地范围为 api 调用,因此一旦 api 调用被解析,它将自动被销毁。如果你想在 api 调用之外做一些事情,那么你应该使用一个全局变量来跟踪结果。
【解决方案3】:

由于您的代码每 5 秒运行一次,我想您可以检查最后一次修改是否发生在不到 5 秒前:

if(comp == res[0].date_modified){
    console.log("the product hasn't been modified")
}
else if (new Date(Date.now().getTime() - 5000) < res[0].date_modified) {
    console.log("the product hasn't been modified since the last check");
}
else{
    console.log("The product has been edited")
    comp = res[0].date_modified;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    相关资源
    最近更新 更多