如何使用Q.Promise<string>作为字符串?



我有返回字符串Q的函数。Promise

module test {
    export function promiseString (): Q.Promise<string> {
        var deferred = Q.defer<string>();
        deferred.resolve('someMessage');
        return deferred.promise;
    }
}

如何将返回值用作字符串?

选项1:

Q.fcall(promiseString).then(function (message: string) {
    //  compilation error about incompatible parameters     
});

选项2:

Q.fcall(promiseString).then(function (promise: Q.Promise<string>) {
    console.log(typeof promise);    //  output string
    //  but i can't use promise as string further
});

如果函数总是返回promise(递延或其他),则不必使用Q.fcall调用它。只需拨打:

promiseString().then(...)

最新更新