【问题标题】:Return expression type Promise<T> is not assignable to a type Promise<T>?返回表达式类型 Promise<T> 不能分配给类型 Promise<T>?
【发布时间】:2016-09-20 13:43:55
【问题描述】:

当我为以下函数添加 javascript 文档时,它会给我一个警告说

Return expression type Promise<T> is not assignable to a type Promise<T> 

使用下面的return defer.promise有什么问题还是我把return语句放错了地方?

   /**
     * 
     * @param zname
     * @returns {Promise<T>}
     */
    this.setInfoFromAPI = function (name) {
        var defer = protractor.promise.defer();
        var controlFlow = protractor.promise.controlFlow();
        httpRequestUtility.getRestfulAPIToken().then(function (accessToken) {
            console.log("Access Token is " + accessToken);
            controlFlow.wait(
                getInfoFromAPI(accessToken, name).then(function (returnData) {
                    if (String(returnData).match(httpStatusCodeClientErrorRegx)) {
                        defer.reject('Get Request Error for Zone Info\nResponse Error Code - ' + returnData);
                    } else {
                        setUpInfoFromAPI(returnData);
                        defer.fulfill();
                    }
                }), 60000, 'Get Information').then(function () {
            })
        });
        return defer.promise;
    };

【问题讨论】:

  • 也许其中一个是 anguarl 承诺,另一个是量角器承诺?
  • 顺便说一句,避免deferred antipattern

标签: javascript jasmine promise protractor angular-promise


【解决方案1】:

尝试使用更明确的webdriver.promise.Promise 而不是Promise

@returns {webdriver.promise.Promise<T>}

【讨论】:

    猜你喜欢
    • 2019-03-04
    • 2016-07-31
    • 2021-06-05
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多