如果 TypeScript 1.6 Q 承诺无效的正确方法是什么?也就是说,它们并不代表价值。例如:
return Q.Promise<void>((resolve,reject) => {
resolve();
}
或
let deferred = Q.defer<void>();
deferred.resolve();
return deferred.promise;
对resolve()
的调用收到错误:
Supplied parameters do not match any signature of call target
(parameter) resolve: (val: void | Q.IPromise<void>) => void
注意,以下工作:
let deferred = Q.defer<string>();
deferred.resolve("Hello World");
return deferred.promise;
这只是https://github.com/nanomsg/nanomsg/blob/fb5670c952c53834c5c7c989eace7c6bd54bd4c5/tests/iovec.c输入中的错误(可能是2015年8月17日更新),或者我指的是错误的?
答案 0 :(得分:2)
对于使用TS1.6的Q,我最终使用:
#
# CrearCatalogo.ps1
#
#Coger variables
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$nombreCatalogo,
[Parameter(Mandatory=$True)]
[string]$tipoCatalogo,
[Parameter(Mandatory=$True)]
[string]$PVD
)
#Lanzar orden
$result = New-BrokerCatalog -name '$nombreCatalogo' -AllocationType '$tipoCatalogo' -MachinesArePhysical $false -ProvisioningType 'MCS' -SessionSupport 'SingleSession' -PersistUserChanges '$PVD' -AdminAddress "localhost:80"
#Parsear
答案 1 :(得分:1)
如果没有返回值或我不关心返回值,我一直在使用...
return Q.Promise<any>((resolve, reject) => {
resolve();
}