Javascript에서 생성기를 사용하는 명령 패턴
8006 단어 generatorsjavascript
다음은 그의 명령 패턴 구현을 보여주는 예입니다.
function *player(maxpong = 10) {
let i = -1;
let resp = "pong"
while (++i < maxpong) {
resp = yield resp
document.write(resp + "<br />")
}
}
function play(gen, tag) {
let state = gen.next (tag)
switch (state.value) {
case "ping" :
play(gen, "pong")
break;
case "pong" :
play(gen, "ping")
break;
default:
console.log("end game")
}
}
play(player())
여기에서 놀 수 있습니다: PingPong
Krasimir의 공식 예
commander(robot());
function* robot() {
const catURL = yield ["get-cat"];
const imgTag = yield ["format", catURL];
console.log(imgTag);
}
async function commander(gen, passBack) {
let state = gen.next(passBack);
switch (state.value ? state.value[0] : null) {
case "get-cat":
const res = await fetch("https://api.thecatapi.com/v1/images/search");
const data = await res.json();
return commander(gen, data[0].url);
case "format":
return commander(gen, `<img src="${state.value[1]}" />`);
}
if (!state.done) {
commander(gen);
}
}
Reference
이 문제에 관하여(Javascript에서 생성기를 사용하는 명령 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/artydev/sending-ping-pong-messages-with-generators-227e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)