2016-01-05 15 views
9

Tôi đang có các trải nghiệm gỡ lỗi tiêu điểm khi cố gắng gỡ lỗi mã bằng async/await bằng cách sử dụng plugin babel transform-async-to-generator (mặc dù tôi đã thử gần như mọi kết hợp khác).NodeJS 5.x + Babel 6 không đồng bộ/đang chờ gỡ lỗi

Mã cơ bản với thời gian chờ sẽ chuyển sang phần cuối của phương thức và sau đó đi vào mã được biên dịch. video

export class Cat { 
    async meow(){ 
     let p = await this.bat(); // <<<< this line runs 
     this.fart(); // <<<< then skips this line 
     return p; // <<<< and goes to this line (always last line in fn) 
    } 
} 

Nếu bạn có một cái nhìn tại các mã được tạo cho chức năng đó:

meow() { 
    var _this = this; 

    return _asyncToGenerator(function*() { 
     let p = yield _this.bat(); 
     _this.fart(); 
     return p; 
    })(); 
} 

không có thắc mắc của mình về kết quả nhưng bản đồ nguồn nên xử lý này, phải không?

Tôi đã thử điều này với một loạt các thiết lập (yêu cầu móc/nút babel-nút/babel cli/gulp babel) và nhận được cùng một vấn đề. Tôi đang sử dụng: Node 5.3.0 và Babel 6.3

Tôi đã tạo một dự án demo trên github. Tôi cũng đã đăng câu hỏi trên babel thread.

CHỈNH SỬA: Câu hỏi được đặt ra cho dự án nguồn bản đồ vì tôi không cảm thấy đây là vấn đề babel. Nhóm đã xác nhận sự cố này là sự cố trình gỡ lỗi. Để biết thêm chi tiết, xem: github issue

+1

Bằng cách "bỏ qua" bạn có nghĩa là bạn không thể đặt điểm ngắt trên dòng đó hoặc bỏ qua nó bằng trình gỡ lỗi của bạn, nhưng 'fart()' không được gọi, phải không? – Bergi

Trả lời

0

Với việc giới thiệu async/await nguyên bản trong nút 4+, đây không còn là vấn đề.

+1

Vẫn còn một vấn đề trong trình duyệt mặc dù ... – Adam

Các vấn đề liên quan