跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 怎么编写一个同时支持 callback 和 promise 风格的函数
未分類
16 9 月 2020

怎么编写一个同时支持 callback 和 promise 风格的函数

怎么编写一个同时支持 callback 和 promise 风格的函数

資深大佬 : youmoo 6

假设给出如下代码模板:

// 一个异步函数 function someFun(callback) {}  // 可以传 callback 执行 someFun(console.log);  // 可以返回 Promise someFun().then(console.log); 

someFun函数要如何编写才能支持 2 种调用风格呢?

我写了篇文章进行详细介绍,欢迎拍砖。

JavaScript: 如何编写一个既支持 Callback 又支持 Promise 风格的函数

大佬有話說 (11)

  • 資深大佬 : moult

    var a=new promise(…);
    if(callback) a.then(callback) else return a;

  • 主 資深大佬 : youmoo

    @moult 可行。不过可以优先 callback, 无 callback 时再 new promise,这样可以省一个 promise 。

  • 資深大佬 : zhuangzhuang1988

    https://github.com/ElemeFE/element/blob/dev/packages/form/src/form.vue#L109

    进程用的

  • 主 資深大佬 : youmoo

    @zhuangzhuang1988 嗯。很多库或框架都有用到这种风格。

  • 資深大佬 : tikazyq

    typeof 应该可以解决你的问题

  • 資深大佬 : flowfire

    这。。。。感觉像是 promisify ?
    正常情况就是判断参数是否存在吧

  • 資深大佬 : lovecy

    typof callback === “function”

  • 資深大佬 : tangchi695

    判断有没有 callback 不就完事儿了吗

  • 資深大佬 : momocraft

    不管有没有 callback 都返回 promise
    如果有 callback 就 then 一份

  • 資深大佬 : lin07hui

    function someFun(callback) {
    const res = { data: “…” };
    typeof callback === “function” && callback(res);
    return Promise.resolve(res);
    }

  • 資深大佬 : hupo0

    @youmoo 连返回类型都不一样了,最好分开成两个函数

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具