我在数据库中存储特定的键值。但是,在获取键值时,会得到未定义的错误。

await DbHandler.fetch(codeStatus)
  .then((result) => {
    const codeEnabledObj = result[0];
    console.log('codeEnabledObj', codeEnabledObj);
    let codeEnabled = false;
    if (codeEnabledObj && codeEnabledObj.length > 0) { // this code not executing at all.
      codeEnabled = codeEnabledObj[0].isEnabled;
    }
    console.log('codeEnabled', codeEnabled); // getting false always
    console.log('codeEnabledObj.length[0]', codeEnabledObj.length); // undefined

  })
  .catch((error) => {

  });


问题是,如果条件发生并抛出未定义的错误,它就不会进入内部。

但是,如果我们从db fetch打印响应

'codeEnabledObj', { type: 'codeStatus', isEnabled: true } // This is my response


有什么建议么?

最佳答案

对象没有像数组一样的length属性。

codeEnabledObj.length是错误的

用这个,

 Object.keys(codeEnabledObj).length


编辑:

codeEnabledObj[0].isEnabled应该仅是codeEnabledObj.isEnabled

09-12 20:20