上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12
返回列表 发新帖
楼主: 李恒道 - 

[油猴脚本开发指南番外篇]为什么我们需要Promise

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    620

    主题

    5084

    回帖

    5958

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    5958

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-5-31 21:35:50 | 显示全部楼层
    cxxjackie 发表于 2023-2-16 22:56
    Promise的.then的写法本身也是一种回调,并不能规避回调地域:

    真正将回调展平的是async/await:

    c大,我又来品味了一下这段话,

    如果使用了回调

    我们可以将每个函数的检测都视为一个任务节点,那么传统的回调各自相互包含的,我们认为函数 A 包含函数 B,而函数 B 包含函数 C

    明明同样是检测,只是检测不同的东西,在逻辑上应该是属于一个贯通的,但是代码上却互相包含,实际是反直觉的

    如果使用了Promise

    这个时候函数直接的视觉上的逻辑是一个平级的,函数 A 后调用 B,函数 B 调用函数 C,每个都是相互独立并且行为和逻辑上是贯通的,这就是 Promise 的意义,也是异步编程的意义,原本割裂的代码得以组合到一起,本质是一种编程思想上的转变。

    这样理解应该对吧
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    620

    主题

    5084

    回帖

    5958

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    5958

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-5-31 21:45:27 | 显示全部楼层

    cxxjackie 发表于 2023-2-16 22:56

    Promise的.then的写法本身也是一种回调,并不能规避回调地域:

    真正将回调展平的是async/await:

    我怕不直观,再贴个图
    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    857

    回帖

    1356

    积分

    荣誉开发者

    积分
    1356

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-5-31 22:31:07 | 显示全部楼层
    李恒道 发表于 2023-5-31 21:45
    [md]我怕不直观,再贴个图
    ![图片.png](data/attachment/forum/202305/31/214519fnrezbb5rr8lt8du.png)[/ ...

    我倒是觉得互相包含不违反直觉,因为任务之间是有先后顺序的,无关顺序的任务使用并列的回调,这个在逻辑上没有问题。看起来别扭的主要原因是,编程语言天生就有顺序性(面向过程),后一句代码在前一句之后执行,这是自然而然的想法,但是回调写法打破了这种理解,Promise带来异步编程,async/await又将异步编程带回了顺序性的结构。

    另外纠个错,你写了2个waitForLoad函数
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    620

    主题

    5084

    回帖

    5958

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    5958

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-5-31 22:52:01 | 显示全部楼层
    cxxjackie 发表于 2023-5-31 22:31
    我倒是觉得互相包含不违反直觉,因为任务之间是有先后顺序的,无关顺序的任务使用并列的回调,这个在逻辑 ...

    太细了
    大佬最新的话也加上了
    感觉这回文章终于趋于完整了
    牛逼!!!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    12
    返回列表 发新帖

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表