Вызов функции после коллбэк

Рейтинг: 0Ответов: 1Опубликовано: 30.01.2023

Как правильно вызвать функцию после коллбэк?

pay (amount) {
      const data = {
        payment: {
          amount: amount,
          description: 'Оплата',
          created_at: new Date(),
          options: {
            callbacks: {
              result_url: 'https://my-domain.com/result',
              check_url: 'https://my-domain.com/check'
            }
          }
        },
        successCallback: function (item) {
          this.create(item) //при вызове этой функции выдает ошибку, прописанную снизу
        },
        errorCallback: function (item) {
          console.log(item)
        }
      }
      // здесь функция, после завершения которой, выполняются коллбэки. Я удалила часть
    },
    create (item) {
      console.log('lll25', item)
    }

ОШИБКА: TypeError: this.create is not a function at i.successCallback

а нужно чтоб при успешном выполнении оплаты, выполнялся функция create. Можете подсказать мою ошибку? Благодарю заранее

Ответы

▲ 2Принят

У вас при вызове колбэка successCallback создаётся новый контекст, так как вы объявляете функцию при помощи function. Используйте стрелочную функцию для того что бы использовать внешний конекст.

successCallback: (item) => {
   this.create(item)
},

Также здесь вы можете почитать об использовании стрелочных функций.