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