gpt4 book ai didi

javascript - Protractor Promise fn 不是一个函数

转载 作者:行者123 更新时间:2023-11-28 04:59:10 29 4
gpt4 key购买 nike

编辑:我想我明白为什么它不起作用。调用 flow.execute(getSpendermeldung) 时我无法传递参数。有人有比将 ApiCall 包装在另一个函数中并使用“全局”变量更好的方法吗?我打算将其放在另一个文件中,并在必要时使用 require。

原帖:对于我的 Protractor 测试,我想从数据库中获取测试数据。我使用 nodejs http 模块完成了此操作,到目前为止该模块正在运行。自从我使用这些数据进行测试以来,我遇到了同步问题。我用 Jasmine 回调解决方案绕过了它们。然而我发现这不够灵活,并且想使用 promise 和控制流。遗憾的是,当我执行代码时,我收到错误:fn 不是函数。在 webdriver/lib/promise.js 深处的某个地方

这是我的功能:

function getSpendermeldung(kennnummer) {
var http = require('http');

var defer = protractor.promise.defer();

var options = {
host: 'localhost',
path: '/blabla/' + kennnummer
};

var callback = function (response) {
var body = '';
response.on('data',
function (chunk) {
body += chunk;
});
response.on('end',
function () {
spendermeldung = JSON.parse(body);
defer.fulfill('json parsed');
});
};

http.get(options, callback).end();

return defer.promise;
}

我这样调用它:

 var flow = browser.controlFlow();
flow.execute(getSpendermeldung('D0000001'));

有人知道我缺少什么。谢谢。

PS:很想发布堆栈跟踪,但我的格式不正确。

最佳答案

您正在调用函数 - getSpendermeldung 而不是将其作为参数传递。是的,我认为您可以在不使用全局变量和使用另一个文件中的 require 的情况下实现它

有关 flow.execute 参数的更多详细信息为 here

var apiCall = require('the-file-that-containsthe-function')
var flow = browser.controlFlow();
flow.execute(function(){return getSpendermeldung('D0000001')});

关于javascript - Protractor Promise fn 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42301685/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com