postgresql if else如何工作?

carvr3hs  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(144)

我在试着找出我的问题从何而来。
我试图给予有关数据发送方与其数据表的连接状态的信息。
我把它翻译成这样:如果接收到新数据(new_id不同于id_from_last_request),则将连接状态设置为“已连接”,否则将其设置为“已断开连接”

<script>
export default {
  data() {
    return {
      search: '',
      tag_id: ['bts_d02c2b7d9098aaa2', 'bts_c077ffaa9098aaa2'],
      headers: [
        {
          text: 'Tags',
          align: 'start',
          sortable: false,
          value: 'name',
        },
        { text: 'wifi', value: 'wifi' },
      ],
      val_ia: 0,
      desserts: [],
      id_memory: [],
    }
  },
  mounted() {
    this.CreateTable();
    setInterval(this.getDatafor, 1000)
  },
  methods: {
    CreateTable() {
      for (let i = 0; i < this.tag_id.length; i++) {
        this.desserts.push(
          {
            name: this.tag_id[i],
          },
        )
      }
    },

    async getDatafor() {
      for (let i = 0; i < this.desserts.length; i++) {
        this.val_ia = i;
        await Promise.all([this.getAllData()]);
      }
    },

    async getAllData() {
      const tag_id_name = encodeURIComponent(this.tag_id[this.val_ia]);
      const url = this.$api.getRESTApiUri() + `/all/last_id/${tag_id_name}`;
      return fetch(url)
        .then(res => res.text())
        .then((result) => {
          console.log(tag_id_name)
          console.log(this.id_memory[this.val_ia]);
          console.log(data[0].id)
          const b = this.Test(this.id_memory[this.val_ia], data[0].id);
          console.log(b)
          if(b){
            this.desserts[this.val_ia].wifi = 'connecté'
            console.log('connecté')
          }else{
             this.desserts[this.val_ia].wifi = 'déconnecté'
            console.log('déconnecté')
          }
          this.id_memory[this.val_ia] = data[0].id
        })
        .catch((error) => {
          console.log(error)
        });
    },
    Test(x, y) {
      const a = x !== y
      return a
    },
  }
}
</script>

仅在没有新数据的情况下const B = false
这是我控制台:

我应该处于断开连接状态,但它显示了连接状态

应该有一个合乎逻辑的解释,但我看不出来。

fumotvh3

fumotvh31#

您在Test方法中使用的是没有型别胁迫(x !== y)的相等。
this.id_memory[this.val_ia]data[0].id可能有不同的类型-一个是数字,第二个是字符串或其他类型。
最好的解决方案是在比较之前将这些值转换为相同的类型,如下所示:

Test(x,y){
    return String(x) !== String(y)
}

部分使用案例:

'123' === 123 // false
'123' == 123 // true
b4wnujal

b4wnujal2#

当创建我的表时,我忘记了推送变量wifi和蓝牙,所以它们没有更新自己。

CreateTable(){
        for(let i = 0; i < this.tag_id.length; i++){
          this.desserts.push(
            {
            name: this.tag_id[i],
            wifi: 'déconnecté',
            bluetooth: 0,
            tension: 0,
            courant: 0,
            temperature: 0,
            acceléromètre: 0,
            pression_sys: 0,
            pression_dias: 0,
            frequence_cardiaque: 0,
            taux_oxygène: 0,
          },
          )
        }
      },

相关问题