2016-05-23 11 views
1

私は、以下の機能のためのJavaScriptのドキュメントを追加すると、それは私の下に戻りdefer.promiseを使用して戻り式式Promise <T>は、タイプに割り当て可能ではありませんPromise <T>?

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

が何か問題があることを言って警告を与えるか、私は間違った場所に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; 
    }; 
+1

たぶん、そのうちの一つがanguarl約束であり、他方は分度器の約束ですか? – Bergi

+2

Btwは、[延期された反パターン]を避けてください(http://stackoverflow.com/q/23803743/1048572)! – Bergi

答えて

1

より明示的webdriver.promise.Promise代わりのPromiseを使用してみてください:

@returns {webdriver.promise.Promise<T>} 
関連する問題