2016-07-05 2 views
1

Dies ist meine Funktion + Callback, um den Wert zu erhalten. Ich möchte es zu einem Funktionsaufruf zurückgeben, ähnlich wie Sie dies tun würden.NodeJs und Winkelmesser geben einen Wert aus der freigegebenen Datei zurück.

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

Wird später im Code verwendet. Ich habe eine Menge Dinge über asynchrone Nodejs-Sachen gelesen, was bedeutet, dass ich das nicht wirklich tun kann ... aber es muss einen Weg geben.

Antwort

0

Ich habe das nicht versucht, aber ich denke, Sie sollten dies auf diese Weise mit einem Versprechen tun können.

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); 
    }); 

Wenn dies nicht funktioniert, können Sie einen Blick webdriver.WebDriver.wait nehmen. Dies kann nützlich sein.

+0

Danke Ich werde das ausprobieren. – erics12512354

+0

@ erics12512354 Haben Sie das versucht? –

Verwandte Themen