Created
September 2, 2020 22:51
-
-
Save pi0/0d55194d6c8415f5d8b9b7050fe76bf3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require('fs') | |
const axios = require('axios') | |
callback | |
fs.readFile('test.txt', 'utf-8', (err, str) => { | |
if (err) { | |
console.error('Something bad!' + err) | |
} | |
console.log(str) | |
}) | |
const request = () => { | |
return fs.promises.readFile('test.txt', 'utf-8').then((url) => { | |
for (let i = 0; i < 10000; i++) { | |
console.log(i) | |
} | |
return axios.get(url) | |
}) | |
} | |
request().then(response => { | |
console.log(response.data) | |
}) | |
console.log('Hey') | |
// // multi thread | |
// // 1 4 6 9 10 | |
// // 2 3 5 7 8 | |
// // .... | |
// // 1----3---2--- | |
function login() { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => { resolve() }, Math.random() * 1500) | |
}) | |
} | |
for (let i = 0; i < 3; i++) { | |
login().then(() => { console.log('logged in ' + i)}) | |
} | |
async function foo() { | |
for (let i = 0; i < 3; i++) { | |
await login().then(() => { console.log('logged in ' + i)}) | |
} | |
} | |
foo() | |
foo() | |
function* fibo() { | |
let a = 1 | |
let b = 1 | |
while (true) { | |
const sum = a + b | |
a = b | |
b = sum | |
yield sum | |
} | |
} | |
const gen = fibo() | |
console.log(gen.next().value) | |
console.log(gen.next().value) | |
console.log(gen.next().value) | |
console.log(gen.next().value) | |
console.log(gen.next().value) | |
const x = () => { | |
this of parent | |
} | |
function x() { | |
console.log(this) | |
} | |
const z = x.bind({}) // bound function | |
z() | |
var (without scope) | |
const | let | |
class A { | |
foo() { | |
console.log(this.x) | |
} | |
} | |
class B extends A { | |
constructor() { | |
super() | |
this.x = 1 | |
} | |
foo() { | |
console.log(this.x) | |
} | |
} | |
const x = new B() | |
x.foo = function () { | |
console.log(this.x) | |
} | |
x.foo = () => { console.log(this.x) } | |
x.foo() | |
1. x.foo ? | |
2. x.constructor.protype.foo ? (x.constructor = B) | |
3. x.constructor.constructor.prototype.foo | |
obj: prototype & constructor | |
function A() { | |
// constructor | |
this.x = 1 | |
} | |
A.prototype.foo = function () { | |
console.log(this.x) | |
} | |
const a = new A() | |
a.foo() | |
const { Server } = require('http') | |
const middleware = [] | |
// app.use(bodyParser.JSON) | |
middleware.push((req, res, next) => { | |
req.json = JSON.parse.data() | |
next() | |
}) | |
// a.js | |
const x = Symbol() | |
const an = {} | |
an[x] = '3' | |
an['x'] = 3 | |
module.exports = an | |
// b.js | |
an.x = 4 | |
const server = new Server(async (req, res) => { | |
middleware[1](req, res, () => { | |
middleware[2](req, res, () => { | |
middleware[3] | |
}) | |
}) | |
}) | |
server.listen(3000) | |
// -- native -- | |
1233 | |
false | |
undefined | |
typeof null is object! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment