浏览器读取并运行JavaScript文件,文件中写入的同步任务立即变为执行中任务,setTimeout回调变为macrotasks,并且promise回调变为微任务.一切都是好的.
在我见面之前,我以为我掌握了JavaScript事件循环requestAnimationFrame.
@TJ Crowder为我提供了以下代码片段.
const messages = [];
setTimeout(() => {
// Schedule a microtask
Promise.resolve().then(() => {
log("microtask");
});
// Schedule animation frame callback
requestAnimationFrame(() => {
log("requestAnimationFrame");
});
// Schedule a macrotask
setTimeout(() => {
log("macrotask");
}, 0);
// Schedule a callback to dump the messages
setTimeout(() => {
messages.forEach(msg => {
console.log(msg);
});
}, 200);
// Busy-wait for a 10th of a second; the browser will be eager to repaint when this task completes
const …Run Code Online (Sandbox Code Playgroud)javascript asynchronous javascript-events promise requestanimationframe
想要“每月30个”,但要获得“ 30个”
package main
import "fmt"
func main() {
var s string
fmt.Scanln(&s)
fmt.Println(s)
return
}
$ go run test.go
31 of month
31
Run Code Online (Sandbox Code Playgroud)
Scanln与Scan相似,但是在换行符处停止扫描,并且在最后一个项目之后必须有换行符或EOF。
我为leetcode相同树问题编写了此代码:
use std::cell::RefCell;
use std::rc::Rc;
// Definition for a binary tree node.
#[derive(Debug, PartialEq, Eq)]
pub struct TreeNode {
pub val: i32,
pub left: Option<Rc<RefCell<TreeNode>>>,
pub right: Option<Rc<RefCell<TreeNode>>>,
}
impl TreeNode {
#[inline]
pub fn new(val: i32) -> Self {
TreeNode {
val,
left: None,
right: None,
}
}
}
struct Solution;
impl Solution {
pub fn is_same_tree(
p: Option<Rc<RefCell<TreeNode>>>,
q: Option<Rc<RefCell<TreeNode>>>,
) -> bool {
match (p, q) {
(None, None) => true,
(Some(p), Some(q)) if p.borrow().val …Run Code Online (Sandbox Code Playgroud)