如何将承诺值解析为正常值

时间:2016-04-05 07:32:34

标签: promise protractor es6-promise rsvp-promise

我们如何解决对正常数字值的承诺。

我在量角器自动化中有用例,我必须先调用一个异步操作,然后调用那个不应该是promise的结果值。

我正在使用量角器框架

修改

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

2 个答案:

答案 0 :(得分:0)

不太确定为什么你可能想要使用非承诺值,但我认为你应该使用browser.wait() 我没有检查过这个,测试一下这段代码是否有用。 这种方法很糟糕,在使用它之前要三思而后行:

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

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

答案 1 :(得分:0)

这个怎么样?您可以在this article中找到有关使用量角器管理承诺的更多信息。

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

修改

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

前一个不干净,因为在两个不同的上下文中使用了相同的名称(mobileNumber)。我不知道结果。