-
Notifications
You must be signed in to change notification settings - Fork 57
Expand file tree
/
Copy pathGenerator.js
More file actions
71 lines (45 loc) · 1.34 KB
/
Generator.js
File metadata and controls
71 lines (45 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// es6
// function GenerateNumber () {
// return Math.random()*100;
// }
// const randomNumber = GenerateNumber();
// console.log(randomNumber)
function* GenerateNumber () {
yield "helloo";
yield 'good'
}
const generate = GenerateNumber(); // Generator Object => Iterator
// Iterator => next
console.log(generate) // iterator next , value , done
// console.log(generate.next());
// console.log(generate.next());
// console.log(generate.next());
// console.log(generate.next());
// for( let data of generate) {
// console.log(data)
// }
// console.log(generate.next()); // does not have any value
//
// if you use normally generator does that function is async => No
// How can i make that function as async ? => as async keyword in the function
function* tricky () {
yield 1223445;
yield 45657;
yield 4567;
// return 5678;
yield 5678;
}
// const genObj = tricky();
// // this will not cosnsider the return statmenet
// for(let value of genObj) {
// console.log(value)
// }
// Generator composition => we can call generator inside another generator
function* giveRandomMessage () {
yield* tricky();
yield* GenerateNumber();
}
const itObj = giveRandomMessage();
for(let it of itObj) {
console.log(it)
}