Как проверить строковое значение JSON в операторе jS if? - PullRequest
0 голосов
/ 01 августа 2020

Я вызываю данные пользователя из Memberstack, который позволяет хранить данные в виде метаданных в JSON. У меня есть следующий код:

// Set Variables //
var initiated = "Y" <--- demonstration purposes only
var startDate = new Date();
var currentDate = new Date();
// End set variqables. //

// Check initiated state. //
MemberStack.onReady.then(async function(member) {
  var metadata = await member.getMetaData()

  if (metadata = initiated.includes("Y")) {
    runTimer();
  } else {
    var sDobj = {
      startDate: startDate,
    }
    var initY = {
      initiated: "Y"
    }
    var sDobjjson = JSON.stringify(sDobj);
    var initYjson = JSON.stringify(initY);
    member.updateMetaData(sDobj, initY)
  }

})
// End check initiated state. //

Большая часть этого работает, за исключением начального оператора if (if (metadata = initiated.includes("Y"))), который в настоящее время связан с переменной var initiated = "Y". Что мне нужно сделать, так это выполнить поиск данных, которые я вернул в строковом ответе metadata вместо предопределенного значения переменной initiated.

Вот консоль, которая правильно возвращает metadata = {"initiated":"N"} из Memberstack:

введите описание изображения здесь

Может ли кто-нибудь помочь мне заставить мой оператор if в строке 28 if (metadata = initiated.includes("Y")) читать строковое значение в строке 26 metadata = {"initiated":"N"} вместо предопределенной переменной var initiated = "Y"?

1 Ответ

0 голосов
/ 01 августа 2020

Измените это на

 if (metadata = initiated.includes("Y")) {
     runTimer();
 } 

This

 if (metadata.initiated === "Y") {
     runTimer();
 } 

Проблема в том, что вы назначаете результат проверки для метаданные. Также инициированная переменная не будет доступна в этой строке, так как она еще не определена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...