【问题标题】:how to resolve promise value as a normal value如何将承诺值解析为正常值
【发布时间】:2016-04-05 07:32:33
【问题描述】:

我们怎样才能将 promise 解析为一个正常的数值。

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

我正在使用量角器框架

编辑

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

【问题讨论】:

  • 你能告诉我们你的源代码吗?
  • var mobileNumber = database.generateMobileNumber().then(function(mobileNumber) { done(); return mobileNumber; }); var number=Promise.resolve(mobileNumber);
  • 我在茉莉花规格中使用这个
  • database.generateMobileNumber() 是异步调用
  • 我正在使用 jasmine 的量角器框架来测试应用程序

标签: promise protractor es6-promise rsvp-promise


【解决方案1】:

不太清楚为什么你可能想要使用非承诺值,但我认为你应该使用 browser.wait() 我没有检查这个,测试这个代码,看看它是否会工作。 这种方法不好,请三思而后行:

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

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

【讨论】:

    【解决方案2】:

    这个怎么样?您可以在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)。我不知道这样做的结果。

    【讨论】:

    • 当我尝试运行它时显示失败:deferred.resolve 不是函数
    • 我能知道量角器中延迟对象的用法吗
    • 我在 webdriver 或量角器网站上找不到任何关于延迟对象信息和使用的文档或信息
    • var mobileNumber = database.generateMobileNumber().then(function(mobileNumber){ done(); var deferred = protractor.promise.defer(); return deferred.fulfill(mobileNumber); }); console.log(mobileNumber);
    • 我能知道什么时候使用延迟对象@stephane
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 2017-04-26
    相关资源
    最近更新 更多