Звонки внутри обратного вызова ничего не делают - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь вызвать другую функцию из обратного вызова, но она ничего не делает, даже если обратный вызов выполнен.Что может быть?

Это React Native, хотя в этом коде шлюза платежей JSX не задействован:

 var conektaApi = new Conekta();
        conektaApi.setPublicKey('key_CWraZrrnBCZ5aFP6FtYNz9w');
        conektaApi.createToken({
        cardNumber: '4242424242424242',
        name: 'Manolo Virolo',
        cvc: '111',
        expMonth: '11',
        expYear: '21',
        }, function(data){

            this.callAnotherFunction()
//I also tried anonymous function and arrow
// ()=>{ callAnotherFunction}

        }, function(){
        console.log( 'Error!' );
        })
        }

Ни в коем случае мне не удается выполнить другую функцию в случаеуспех.В github вы можете найти js-код модуля Conekta, который на самом деле является очень простым кодом, но я не могу определить, что происходит или как это исправить.

Я думаю, что проблема в индексе.js зависимости Conekta:

модуль Conekta js

Содержит index.js Conekta:

/**


* @providesModule Conekta
 */

'use strict';

// RNConekta
const RNConekta = require('react-native').NativeModules.RNConekta;
const Platform = require('react-native').Platform;

var Conekta = function() {
    this.publicKey = false;
};

/**
 * Params:
 * publicKey: String (Your testing or production Public Key)
 */
Conekta.prototype.setPublicKey = function(publicKey: String) {
    this.publicKey = publicKey;
};

/**
 * Params:
 *  info = {
 *      cardNumber: String
 *      name: String
 *      cvc: String
 *      expMonth: String
 *      expYear: String
 *  }
*/
Conekta.prototype.createToken = function(info: Object, success: Function, error:Function) {
    info.publicKey = this.publicKey;

RNConekta.createToken(info, function(response){
    if ( Platform.OS === 'android' ) {
        success( JSON.parse( response ) );
    } else {
        success( response );
    }
}, error);
};

module.exports = Conekta;

1 Ответ

0 голосов
/ 06 декабря 2018

Я не знаком с Conekta, но я думаю, что вам также нужно указать параметр для ошибки в вашей строке function(data), например:

function(err, data){
    if (err) {
        console.error(err);
        return;
    }
    this.callAnotherFunction()
}
...