Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 节点/量角器等待承诺解决后再继续_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript 节点/量角器等待承诺解决后再继续

Javascript 节点/量角器等待承诺解决后再继续,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我正在编写一个类,它获取seleniumCapabilites并在类中存储值。它公开了一个方法,该方法使用类中获取的会话来获取selenium节点。但是,当javascript类调用我的新类时,getSeleniumNode返回undefined。我很确定这是因为getSeleniumNode没有等待web请求完成处理,但我不确定如何重新设计它才能工作 var base = require(__paths.e2e.pages + '/base'), urlParse = requ

我正在编写一个类,它获取seleniumCapabilites并在类中存储值。它公开了一个方法,该方法使用类中获取的会话来获取selenium节点。但是,当javascript类调用我的新类时,getSeleniumNode返回undefined。我很确定这是因为getSeleniumNode没有等待web请求完成处理,但我不确定如何重新设计它才能工作

    var base = require(__paths.e2e.pages + '/base'),
    urlParse = require('url-parse'),
    request = require('sync-request');

module.exports = function (options) {
    var self = base(options);


    browser.getProcessedConfig().then(function (config) {
        self.seleniumHub = new urlParse(config.seleniumAddress);
        console.log(self.seleniumHub.host);

        browser.driver.getCapabilities().then(function (capabilities) {
            self.capabilities = capabilities;

        });
    });

    self.getSessionId = function () {
        return self.capabilities.caps_[
            'webdriver.remote.sessionid'];
    };

    self.getPlatform = function () {
        return self.capabilities.platform;
    };

    self.getBrowserName = function () {
        return self.capabilities.browserName;
    };

    self.getBrowserVersion = function () {
        return self.capabilities.version;
    };

    self.getSeleniumNode = function () {
        var url = 'http://' + self.seleniumHub.host + "/grid/api/testsession?session=" + capabilities.caps_[
            'webdriver.remote.sessionid'];
        var response = request('GET', url);
        var testSession = JSON.parse(response.getBody().toString());
        return new urlParse(testSession.proxyId);
    };

    return self;


};
我的班级叫这是

var base = require(__paths.e2e.pages + '/base');
var seleniumCapabilities = require(__paths.e2e.lib + '/seleniumCapabilities')();


module.exports = function (options) {
    var self = base(options);

    console.log(seleniumCapabilities.getSeleniumNode());




    return self;

};
运行此e2e测试时获得的相关控制台输出为

undefined -- this is the call from       console.log(seleniumCapabilities.getSeleniumNode());

localhost:4444 --- this is the call from       console.log(seleniumCapabilities.getSeleniumNode());