編集:私はなぜそれが動作していないか分かります。 flow.execute(getSpendermeldung)を呼び出すときに引数を渡すことはできません。誰かがApiCallを別の関数でラップし、 "グローバル"変数を使用するよりも優れていますか?私はこれを別のファイルに入れて、必要なときにrequireを使うつもりです。分度器fnは関数ではありません
オリジナル投稿 私の分度器テストでは、私はデータベースからテストデータを取得したいと思います。これまでのnodejs httpモジュールでこれを行いました。私はこのデータでテストしているので、私は同期の問題で動いています。私はジャスミンのコールバックソリューションでそれらの周りを得た。しかし、私はこれが柔軟性がないとわかり、約束とコントロールフローを使用したいと思います。残念ながら私のコードを実行するとエラーが表示されます: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:stacktraceを投稿するのが大好きですが、書式設定が正しく行われません。
が、私は両方試しを与え、常にで終わっていることを別のファイルからの引数の
詳細を必要と使用しなくても、それを達成することができます無限ループ。これは、get()がrequest()ではなくend()を暗黙的に呼び出すためです。しかし、延期を返すことは間違っているようです。 – Transzendental
私のプロジェクトでは、私はいつも延期しています。 – nilesh