You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
825 B
JavaScript

"use strict";
const isGenerator = require("is-generator-function");
const yieldcore = require("./index");
function* A() {
yield 1;
yield 2;
yield B;
yield 3;
return 9;
}
function* B() {
yield 10;
yield 11;
yield C;
yield D;
return 19;
}
function* C() {
yield 28;
return 29;
}
function* D() {
yield 37;
yield 38;
return 39;
}
let core = yieldcore.create(A, {
onYieldInstruction: function* (value) {
console.log(value);
},
onYieldGenerator: function* (value) {
// Waiting 2 seconds...
console.log("Waiting...");
// setTimeout(() => core.resume(), 2000);
// yield yieldcore.Pause;
yield new Promise((resolve) => setTimeout(resolve, 2000));
},
onReturn: function* (value) {
console.log(`r ${value}`);
}
});
core.resume();
// expected: 1, 2, 10, 11, 28, r 29, 37, 38, r 39, r 19, 3, r 9