2016-07-05 2 views
1
this.queryMailApi = function(mailUrl, callback) { 
    request.get({url: mailUrl}, function (err, httpResponse, body) { 
    if (err) { 
     return console.error('post failed:', err); 
    } else 
    callback(body); 
    }); 
}; 

this.myCallBack = function(data) { 
    var emailData = data; 
    console.log(emailData); 
} 

これは、値を取得するための関数+コールバックです。私はあなたがこれをやる方法に似た関数呼び出しに戻したいと思います。NodeJsと分度器は共有ファイルから値を返します

var x = shared.queryMailApi(mailApiUrl, shared.myCallBack); 

コードの後半で使用します。私は実際にこれを行うことはできないことを意味する非同期Nodejのものについて、大量のことを読んできましたが、方法が必要です。

答えて

0

私はこれを試していませんでしたが、私はあなたがこのように約束でこれを行うことができるはずだと思います。

this.queryMailApi = function(mailUrl) { 
    var deferred = protractor.promise.defer(); 

    request.get({url: mailUrl}, function (err, httpResponse, body) { 
    if (err) { 
     deferred.reject(err); 
     return console.error('post failed:', err); 
    } 

    deferred.resolve(body); 
    }); 

    return deferred.promise 
}; 


this 
    .queryMailApi('[email protected]') 
    .then(function(response) { 
    console.log(response); 
    }); 

これが機能しない場合は、webdriver.WebDriver.waitをご覧ください。これは役に立つかもしれません。

+0

ありがとう、私はこれを試してみます。 – erics12512354

+0

@ erics12512354これを試しましたか? –

関連する問題