Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我无法将值从一个文件中的函数返回到Node.js中的另一个文件,我正在进行未定义 add.js main.js_Javascript_Node.js_Mocha.js_Webdriver Io - Fatal编程技术网

Javascript 我无法将值从一个文件中的函数返回到Node.js中的另一个文件,我正在进行未定义 add.js main.js

Javascript 我无法将值从一个文件中的函数返回到Node.js中的另一个文件,我正在进行未定义 add.js main.js,javascript,node.js,mocha.js,webdriver-io,Javascript,Node.js,Mocha.js,Webdriver Io,当我试图从add.js文件返回{add,mul}到main.js时,不会返回值,而是显示{add:undefined,mul:undefined} 我正在使用WebDrivero-Mocha框架看起来add.js正在运行异步代码。尝试让add.js返回承诺,使用Promise.all确保add和mul的填充,并在main.js中等待: main.js: (async () => { const d = await add("G", "I"); console.log(d); })(

当我试图从add.js文件返回{add,mul}到main.js时,不会返回值,而是显示{add:undefined,mul:undefined}

我正在使用WebDrivero-Mocha框架

看起来add.js正在运行异步代码。尝试让add.js返回承诺,使用Promise.all确保add和mul的填充,并在main.js中等待:

main.js:

(async () => {
  const d = await add("G", "I");
  console.log(d);
})();

我怀疑。如果导入不起作用,则在尝试调用add时会出现错误。您所说的输出意味着调用了该方法,但实现与此处的不同。-你所拥有的不是一个。我在上面编写了完全相同的示例,它工作得很好。可能您在实际示例中的代码的其他部分干扰了add函数。我建议在返回值之前添加一个console.loga,b,add,mul,以便在您不使用更高级的调试工具的情况下进行双重检查。编辑:当add函数需要执行更多步骤时,会发生这种情况-您需要提供一个。如果您只向我们展示一些没有任何问题的工作代码,我们将无能为力!您的代码应该正常返回值
    var webdriverio = require('webdriverio');
    var add = require("./add.js");

    var d = add("G", "I");

    describe('This is from Main.js file', function() {
        this.timeout(50000);
        var driver = {};

        before(function() {
            driver = webdriverio.remote({
                desiredCapabilities: {
                    browserName: 'chrome',
                    chromeOptions: {
                        args: ['--start-maximized']
                    }
                }
            });
            return driver.init();
        });
        it('Example1', function() {
            return driver.url("https://www.google.co.in/").getText("//a[text()=" + d.add + "]").then(function(text) {
                add = (text);
            });
        });
        it('Example2', function() {
            return driver.getText("//a[text()=" + d.mul + "]").then(function(text) {
                mul = (text);
            });
        });

    });

    console.log(d); //prints { add: undefined, mul: undefined }
function add(a, b) {
  return new Promise((resolveAdd, rejectAdd) => {
    describe('This is from add.js file', function() {
      this.timeout(50000);
      var driver = {};

      before(function() {
        driver = webdriverio.remote({
          desiredCapabilities: {
            browserName: 'chrome',
            chromeOptions: {
              args: ['--start-maximized']
            }
          }
        });
        return driver.init();
      });
      const example1Promise = new Promise(resolveP1 => {
        it('Example1', function() {
          return driver.url("https://www.google.co.in/").getText("//a[text()='Gmail']").then(resolveP1);
        });
      });
      const example2Promise = new Promise(resolveP2 => {
        it('Example2', function() {
          return driver.getText("//a[text()='Images']").then(resolveP2);
        });
      });
      Promise.all(example1Promise, example2Promise).then(([add, mul]) => {
        resolveAdd({ add, mul });
      });
    });
  });
}

module.exports = add;
(async () => {
  const d = await add("G", "I");
  console.log(d);
})();