TypeError未定义不是函数

时间:2018-12-10 16:23:27

标签: javascript reactjs react-native promise

嗨,我正在尝试调用一个函数,该函数返回一个String,一旦获得该字符串,我想执行一些操作。但出现错误TypeError: undefined is not a function (evaluating'(0, _cryptoUtil.encryptString) (token).then

this.savePerishableTokenInSharedPrefs(res.perishableToken);

  savePerishableTokenInSharedPrefs = ( token ) => {
    const returned = encryptString(token).then((encryptedToken) => {
      //save the token
    })
    .catch(err => {
      consoleLog('error -' + err);
    });
  }

cryptoUtils.js

export function encryptString (encryptMe) {
    var CryptoJS = require("crypto-js");
    // Encrypt
    var encryptedText = CryptoJS.AES.encrypt(encryptMe, globals.ENCRYPTION_KEY);
    consoleLog('encryptString - ' + encryptedText + ' pin - ' + encryptMe );
    return encryptedText;
}

我在这里错过了基本的东西吗?。

谢谢 R

2 个答案:

答案 0 :(得分:0)

似乎您期望encryptString返回一个Promise,但实际上是返回一个字符串。

尝试一下:

export function encryptString (encryptMe) {
    var CryptoJS = require("crypto-js");
    // Encrypt
    var encryptedText = CryptoJS.AES.encrypt(encryptMe, globals.ENCRYPTION_KEY);
    consoleLog('encryptString - ' + encryptedText + ' pin - ' + encryptMe );

    return Promise.resolve(encryptedText);
}

答案 1 :(得分:0)

我不确定encryptString函数应该是异步的。根据{{​​3}},您可以在返回值上使用toString()并使用类似结果

  savePerishableTokenInSharedPrefs = ( token ) => {
    try {
       const encryptedToken = encryptString(token);
       //save the token
    } catch(e => {
      consoleLog('error -' + e);
    };
  }