我想知道如下功能的实现。
作为输入,我收到一个函数,它可以是同步的:
externalFunction = () ->
return true
或异步:
externalFunction = (done) ->
done(true)
所以,我想区分这些类型的函数
当我收到同步功能时,我想调用它然后使用它的结果:
result = externalFunction()
doSomething result
当我收到一个异步的时候,我想先等待它的回调:
externalFunction (result) ->
doSomething result
最好的方法是什么?
现在我想知道这样的事情:
promise(externalFunction(myCallback)).complete (err) -> ...
答案 0 :(得分:0)
这可能是一个简单的答案,但仍希望能有更好的答案。
myCallbackAfterFunction = (result) ->
...
functions = [...]
for func in functions
if func.length != 0
func(myCallbackAfterFunction)
else
result = func()
myCallbackAfterFunction(result)