Вызов функции цепного кода внутри другой функции в тех же цепочках приводит к ошибке - PullRequest
0 голосов
/ 13 июня 2019

Проблема:

Я создал цепной код. В одной функции этого кода я вызвал другую функцию с тем же цепным кодом. Вот так выглядит этот код.

 async nthUsersLands(stub, args) {
    if (args.length != 1) {
      throw new Error(
        "Incorrect number of arguments. Expecting NIC ex: 942990014V"
      );
    }

    let nic = args[0];

    let queryString = {};
    queryString.selector = {};
    queryString.selector.docType = "land";
    queryString.selector.user = nic;
    let method = thisClass["getQueryResultForQueryString"];
    let queryResults = await method(
      stub,
      JSON.stringify(queryString),
      thisClass
    );

    // let queryResults = await methods.getQueryResultForQueryString(stub,JSON.stringify(queryString))

    console.log(queryResults.toString());
    return queryResults;
  }

  async getQueryResultForQueryString(stub, queryString, thisClass) {
    console.info("- getQueryResultForQueryString queryString:\n" + queryString);
    let resultsIterator = await stub.getQueryResult(queryString);
    let method = thisClass["getAllResults"];

    let results = await method(resultsIterator, false);
    // let results = await methods.getAllResults(resultsIterator,false)

    return Buffer.from(JSON.stringify(results));
  }

  async getAllResults(iterator, isHistory) {
    let allResults = [];
    while (true) {
      let res = await iterator.next();

      if (res.value && res.value.value.toString()) {
        let jsonRes = {};
        console.log(res.value.value.toString('utf8'));

        if (isHistory && isHistory === true) {
          jsonRes.TxId = res.value.tx_id;
          jsonRes.Timestamp = res.value.timestamp;
          jsonRes.IsDelete = res.value.is_delete.toString();
          try {
            jsonRes.Value = JSON.parse(res.value.value.toString('utf8'));
          } catch (err) {
            console.log(err);
            jsonRes.Value = res.value.value.toString('utf8');
          }
        } else {
          jsonRes.Key = res.value.key;
          try {
            jsonRes.Record = JSON.parse(res.value.value.toString('utf8'));
          } catch (err) {
            console.log(err);
            jsonRes.Record = res.value.value.toString('utf8');
          }
        }
        allResults.push(jsonRes);
      }
      if (res.done) {
        console.log('end of data');
        await iterator.close();
        console.info(allResults);
        return allResults;
      }
    }
  }

Но когда я вызываю этот getNthUsersLands, я получаю такую ​​ошибку.

TypeError: Невозможно прочитать свойство 'getQueryResultForQueryString' из не определен

Я много пытался найти решение, используя три вопроса относительно этой проблемы при переполнении стека, но я не смог решить эту проблему, используя их. Может кто-нибудь помочь мне с этой проблемой? Спасибо!

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