node.js - 关于co用法的困惑
PHPz
PHPz 2017-04-17 15:29:26
0
2
612

node小白,今天学习了下用Node写命令行工具。

然后有个TJ大神写的co包:

    co(function* (){
        yield setTimeout(function() {
            console.log(1);
        }, 5);
        
        yield setTimeout(function() {
            console.log(2);
        }, 1);
    });

最后这段代码执行的时候只输出了1。为什么没有输出2呢?

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
小葫芦

귀하의 사용법은 사양을 준수하지 않습니다. Co는 약속, 생성기, 배열 및 객체를 생성하는 것을 허용하지만 패러다임 함수여야 합니다.
첫 번째 setTimeout을 생성하는 경우 함수는 정상적으로 실행되지만 실행 후 오류가 보고됩니다.

으아악

오류 보고는 자연스럽게 중단되므로 코드가 계속 실행되지 않습니다. 위 오류가 보고되는 이유는 소스 코드를 주의 깊게 읽어보면 알 수 있습니다.

刘奇

tj/co는 완벽하지 않습니다. tj/co 대신 hprose에서 co를 사용할 수 있습니다. 소개 기사는 다음과 같습니다.

https://segmentfault.com/a/11...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿