Ожидание внутри ожидание не дает правильный вывод - PullRequest
0 голосов
/ 30 июня 2019

ОБНОВЛЕНО: Ниже приведен мой код, где я хочу проверить, существует ли токен.Если да, то я проверю, является ли владелец кошелька владельцем токена.Проблема теперь в том, что он не проверяет вторую функцию "contract.methods.ownerOf (tokenId) .call (function (err, res))", поэтому конечный результат не является правильным.

async function doesTokenIdExist(tokenId, contract, walletAddress) {

    var tokenExists = false;

    await contract.methods.exists(tokenId).call(async function (err, res) {

        if (res) {

            await contract.methods.ownerOf(tokenId).call(function (err, res) {

                if (!err) {

                    tokenAddress = res.toLowerCase();
                    walletAddress = walletAddress.toLowerCase();

                    if (tokenAddress.localeCompare(walletAddress) == 0){

                        tokenExists = true;

                    } else {
                        tokenExists = false;
                    }

                } else {

                    tokenExists = false;

                }

            });


        } else {
            tokenExists = false;

        }


    });

    return tokenExists;

}

1 Ответ

4 голосов
/ 30 июня 2019

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

await contract.methods.exists(tokenId).call(function (err, res) {

на это,

await contract.methods.exists(tokenId).call(async function (err, res) {
...