添加数据保证不能与后台返回的原数据重复

最近做的项目:需要实现添加属性值的时候不能与后台原数据有重复的

img

代码如下:


const onFinishForm = async (modelstates: any) => {  
  modelstates.value.tags = states.tags
    if (modelstates.value._id) {
       await updateAw(`/api/hlfs/${modelstates.value._id}`, modelstates.value)
       await query(formState)
        message.success("Modified successfully")
    } else {
      let typeName=ref(true)
      // 查询是否重复description
      await query({search:modelstates.value.description}).then(res=>{
    if(res.length>0){
      if(res[0].description===modelstates.value.description){
      typeName.value=false
    }
    }
    return
  })
      let typeDscription=ref(true)
      // 查询是否重复名称
     await query({q:`name.keyword:${modelstates.value.name}`,search:''}).then(res=>{
        console.log(res);
        if(res.length>0){
        typeDscription.value=false
        
      }
      return
  })
  console.log(typeName.value && typeDscription.value);
  
        if(typeName.value && typeDscription.value){
          delete modelstates.value._id
          // 添加的函数
        await saveAw(modelstates.value)
        }else{
          message.error("Duplicate name or description")
          visible.value = true;
        }
    } 
    visible.value = false;
    clear()
    
  }


这里的同步异步给我整混淆了,各位能帮忙看看,这种情况怎么解决吗?

使用了await,后面就不需要then了,直接使用变量接收函数返回值即可。这两个查询重复的请求可以使用Promise.all同时发送