Нужно ли возвращать функцию Promise? - PullRequest
0 голосов
/ 27 августа 2018

Необходимо ли возвращать функцию Promise, если я использую await & async в узле 8 +?

async function _readSourceDataFromCache (slug_name) {
    aerospikeClient = aerospikeConf.AerospikeClient;
    console.log('In async function')
    console.log(aerospikeClient);
    return new Promise ( function (resolve, reject) {
        aerospikeClient.get(aerospikeConf.AerospikeKey, function (error, record) {
            if (error) {
              switch (error.code) {
                case aerospikeConf.Aerospike.status.AEROSPIKE_ERR_RECORD_NOT_FOUND:
                  console.log('NOT_FOUND -', aerospikeConf.AerospikeKey)
                  break
                default:
                  console.log('ERR - ', error, aerospikeConf.AerospikeKey)
              }
              resolve(false)
            }
            else{
                resp = record['value']
                aerospikeClient.close();
                return resolve(resp);
            }
        });
    })
}

Как мне справиться с этим из вызывающей функции?

1 Ответ

0 голосов
/ 27 августа 2018

Вы должны вернуть свой promise (я думаю, вы можете использовать это promise, чтобы использовать что-то)

Но async не обязательно.

async отметка, которую вы должны ждать promise разрешена с помощью await

async yourFunction(){
    console.log('Something');
    await readDataBase(); // wait this promise return it's result
    console.log('Oh, done!!!')
}

Ваша функция возвращает Promise, и не ждите, пока это будет сделано. Если вы хотите подождать, используйте async для functionParent (эта функция вызывает вашу функцию).

...