我正在制作一个将函数作为范围参数(scope: { method:'&theFunction' }
)的指令.我需要知道该方法返回的结果是否是一个有角度的承诺(如果有的话会在分辨率上发生,否则会立即发生).
现在我正在测试是否foo.then
存在,但我想知道是否有更好的方法来做到这一点.
Kay*_*ave 78
when()
正如Davin所说,Angular 是一个不错的选择.
如果这不符合您的需求,那么Angular的内部检查方式(它在内部使用when
)非常接近您正在做的事情:
var ref = function(value) {
if (value && isFunction(value.then)) {
// Then this is promise
}
Run Code Online (Sandbox Code Playgroud)
@kayakDave,感谢您指导正确的地方.
Run Code Online (Sandbox Code Playgroud)when(value, [successCallback], [errorCallback], [progressCallback]); Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. This is useful when you are dealing with an object that might or might not be a promise, or if the promise comes from a source that can't be trusted.
$q.when(value).then(function (data) {
//this helps me to bind data from $resource or $http or object
}
Run Code Online (Sandbox Code Playgroud)
检查这个 小提琴