首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
xcstream
V2EX  ›  JavaScript

请教一个 js 问题,实现类似 go channel 的功能

  •  
  •   xcstream · 5 天前 · 815 次点击
    class JSChannel{
    constructor(){
    //todo
    }

    output(){
    //todo

    }

    input(item){
    //todo
    }
    }



    var chan = new JSChannel()
    chan.input(1)
    chan.input(2)
    chan.input(3)

    async function runloop(){
    while(1){
    var v = await chan.output()
    console.log(v)
    }
    }
    runloop()

    setInterval(
    function(){
    chan.input(new Date())
    },1000
    )

    //一端输入一端输入,没有输入时候停住,知道有输入时返回
    //输出 1 2 3 然后一秒出一次时间
    5 回复  |  直到 2020-02-17 01:48:53 +08:00
    ericls
        1
    ericls   5 天前 via iPhone
    包个 promise 就行啦
    godoway
        2
    godoway   5 天前
    听说过 rxjs 吗
    var subject = new Subject()
    subject.subscribe(msg => console.log(msg))

    subject.next(1)
    subject.next(2)
    subject.next(3)
    jinliming2
        3
    jinliming2   5 天前 via iPhone
    用 async generator 比较合适?
    noe132
        4
    noe132   5 天前 via Android
    你听说过 eventemitter 吗
    xcstream
        5
    xcstream   3 天前
    我知道你们说的东西,但是 只在这 3 个地方填代码是否可以实现。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3227 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    ♥ Do have faith in what you're doing.