Vivek
Vivek

Reputation: 151

how to resolve promise value as a normal value

How can we resolve promise to a normal number value .

I have use case in protractor automation in the first i have to call a asynchronous operation then that result value which should not be a promise .

I am using protractor framework

EDIT

var mobileNumber = database.generateMobileNumber().then(function(mobileNumber){
    done();
    return mobileNumber;
}); 
var number=Promise.resolve(mobileNumber);

Upvotes: 1

Views: 2140

Answers (2)

How about this ? You can find in this article more information about managing promises with protractor.

var mobileNumber = database.generateMobileNumber().then(function(mobileNumber){
    done();
    var deferred = protractor.promise.defer();
    return deferred.fulfill(mobileNumber);
});

EDIT

var mobileNumber = database.generateMobileNumber().then(function(value){
    done();
    var deferred = protractor.promise.defer();
    return deferred.fulfill(value);
});

the previous one is not clean as the same name (mobileNumber) is used in two different contexts. I don't know the result of this.

Upvotes: 0

Xotabu4
Xotabu4

Reputation: 3091

Not quite sure why you might want to work with non-promise values, but i think you should play with browser.wait() I didn't checked this, test this code to see if it will work. This approach is bad, think twice before use it:

function getMobileNumber() {
var result;
var promise = database.generateMobileNumber().then(mobileNumber=> {
    result = mobileNumber;
    return true;
});

browser.wait(promise, 10000)
return result;
}

Upvotes: 0

Related Questions