假设给出如下代码模板:
// 一个异步函数
function someFun(callback) {}
// 可以传 callback 执行
someFun(console.log);
// 可以返回 Promise
someFun().then(console.log);
someFun函数要如何编写才能支持 2 种调用风格呢?
我写了篇文章进行详细介绍,欢迎拍砖。
1
moult 2020 年 9 月 11 日 via iPhone var a=new promise(...);
if(callback) a.then(callback) else return a; |
3
zhuangzhuang1988 2020 年 9 月 11 日
|
4
youmoo OP @zhuangzhuang1988 嗯。很多库或框架都有用到这种风格。
|
5
tikazyq 2020 年 9 月 11 日
typeof 应该可以解决你的问题
|
6
flowfire 2020 年 9 月 11 日
这。。。。感觉像是 promisify ?
正常情况就是判断参数是否存在吧 |
7
lovecy 2020 年 9 月 11 日
typof callback === "function"
|
8
tangchi695 2020 年 9 月 11 日
判断有没有 callback 不就完事儿了吗
|
9
momocraft 2020 年 9 月 11 日
不管有没有 callback 都返回 promise
如果有 callback 就 then 一份 |
10
lin07hui 2020 年 9 月 11 日
function someFun(callback) {
const res = { data: "..." }; typeof callback === "function" && callback(res); return Promise.resolve(res); } |