首页 > 解决方案 > TypeError undefined 不是函数

问题描述

嗨,我正在尝试调用一个返回字符串的函数,一旦获得该字符串,我就想执行一些操作。但我得到一个错误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

标签: javascriptreactjsreact-nativepromise

解决方案


我不确定该encryptString功能是否应该是异步的。根据github 上的 crypto-js,您可以toString()在返回值上使用并使用类似的结果

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

推荐阅读