不知道有沒有人嘗試過一些方式來檢查 function 是否為 “thunk” ? (不是直接執行後再來判斷回傳值)
我目前只想到一個不是很好的方式,把 function 轉 string 再丟給 js parser 然後檢查回傳值是否為 function,並檢查 params 的長度,不知道有沒有其他好的方式?
thunk 翻译过来是什么, 有没有详细的定义
stackoverflow.com/questions/2641489/what-is-a-thunk
node 這邊主要由 co 帶進來的,可以參考他的 README.md
function () { return function (done) { done(err, data); } }
这个形式的函数就是 thunk。
想不到特别好的方法来直接判断 thunk,不过 thunkify 一个 thunk 应该还是会返回一个 thunk 的。暂时还没有发现特别需要判断的需求。
thunkify
主要是想檢查 function 的某個參數使否是 thunk, promise 或 node style 的 callback,如果不是這三種我想丟一個錯誤出去
是想检查函数名是"thunk"还是函数的其中某个参数是"thunk"
某個參數是 thunk
@poying 目测没有更好的办法了。 做这个检查的目的是什么?
@dead-horse 讓開發者知道傳入了不合法參數 就像 co 本身也會檢查被 yield 的資料,然後提供適當的錯誤訊息 #L109
@poying co 也没有去检查被 yield 的 function 是不是 thunk,如果这个检查的消耗比较大的话就没必要做了吧,约定就好
@dead-horse 目前應該只能這樣了,只是覺得不甘心 XD
function x (thunk,callback) { var b = /(((?:[^()]+)))/i; var callee = arguments.callee; var match = b.exec(callee.toString()); ( match[1].split(’,’)[0] !== ‘thunk’ ) ? callback(false) : callback(true); }
x(‘thunk’, function ( flag ) { alert(flag); });
目前就想到这种方法
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
thunk 翻译过来是什么, 有没有详细的定义
stackoverflow.com/questions/2641489/what-is-a-thunk
node 這邊主要由 co 帶進來的,可以參考他的 README.md
这个形式的函数就是 thunk。
想不到特别好的方法来直接判断 thunk,不过
thunkify一个 thunk 应该还是会返回一个 thunk 的。暂时还没有发现特别需要判断的需求。主要是想檢查 function 的某個參數使否是 thunk, promise 或 node style 的 callback,如果不是這三種我想丟一個錯誤出去
是想检查函数名是"thunk"还是函数的其中某个参数是"thunk"
某個參數是 thunk
@poying 目测没有更好的办法了。 做这个检查的目的是什么?
@dead-horse 讓開發者知道傳入了不合法參數 就像 co 本身也會檢查被 yield 的資料,然後提供適當的錯誤訊息 #L109
@poying co 也没有去检查被 yield 的 function 是不是 thunk,如果这个检查的消耗比较大的话就没必要做了吧,约定就好
@dead-horse 目前應該只能這樣了,只是覺得不甘心 XD
function x (thunk,callback) { var b = /(((?:[^()]+)))/i; var callee = arguments.callee; var match = b.exec(callee.toString()); ( match[1].split(’,’)[0] !== ‘thunk’ ) ? callback(false) : callback(true); }
x(‘thunk’, function ( flag ) { alert(flag); });
目前就想到这种方法