慕烟庭风

文章 评论 浏览 30

慕烟庭风 2022-05-04 13:57:20

这题怎么没人答,我说下我粗浅的认识,抛砖引玉,欢迎指正和补充。
我觉得这题主要是考察这三者在事件循环中的区别,事件循环中分为宏任务队列和微任务队列。
其中settimeout的回调函数放到宏任务队列里,等到执行栈清空以后执行;
promise.then里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码执行完再执行;async函数表示函数里面可能会有异步方法,await后面跟一个表达式,async方法执行时,遇到await会立即执行表达式,然后把表达式后面的代码放到微任务队列里,让出执行栈让同步代码先执行。

第一次执行栈的同步任务都完成后,接着处理的应该是微任务吧,然后再从宏任务队列里拿一条宏任务到执行栈中,等执行栈中的宏任务处理完,再去清空微任务队列。

第 8 题:setTimeout、Promise、Async/Await 的区别

慕烟庭风 2022-05-04 13:54:54

写一下自己的理解

// arr : A(牌堆): 底 【1, 。。。。, 13】 顶

// res:  B (手里):  底 【】 顶

// 原操作:B顶 => A顶   B顶 => B底 (如果B有多张)
// 逆向操作:B底 => B顶 (如果B有多张)  A顶 => B顶
const reverse = arr => {
  const res = [];
  while (arr.length > 0) {
    if (res.length) {
      res.push(res.shift());
    }
    const item = arr.pop();
    res.push(item);
  }
  return res;
};

// 输出 手里牌
// 底  [ 7, 10, 6, 13, 5, 9, 4, 11, 3, 8, 2, 12, 1 ]  顶

第 126 题:扑克牌问题

慕烟庭风 2022-05-03 15:16:09

4. TouchableHightlight 必须注册 onPress 回调,否则不显示 underlayColor

详情见: facebook/react-native#14908

<TouchableHighlight underlayColor="red">
</TouchableHighlight>

如果不注册 onPress 回调,TouchableHighlight看起来手指按压时无反应,原因即:

_showUnderlay: function() {
-    if (!this._isMounted || !this._hasPressHandler()) {
+    if (!this._isMounted) {
        return;
      }

react-native 实践 borderRadius 和 border 冲突?

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文