Computer >> Máy Tính >  >> Lập trình >> Lập trình

Khắc phục nhanh lỗi Gulp:“Các tác vụ sau không hoàn thành… Bạn quên báo hiệu hoàn thành khi không đồng bộ hóa?”

Khi làm việc trong Gulp, bạn có thể gặp lỗi này:

The following tasks did not complete... Did you forget to signal async completion?

Nguyên nhân là do trong Gulp 4, tất cả các tác vụ đều tự động không đồng bộ.

Các hàm đồng bộ lần lượt thực thi các hàm khác và mỗi hàm phải đợi cho đến khi hoàn thành hàm trước đó trước khi tự chạy. Mặt khác, các hàm không đồng bộ có thể bắt đầu chạy trong khi vẫn chờ kết quả của các hàm trước đó.

Điều này làm cho các quy trình hiệu quả hơn vì chúng không bị chặn. Nhưng để biết khi nào một chức năng đã hoàn thành, chúng ta cần chúng trả về các ký hiệu rõ ràng rằng chúng đã hoàn thành. Hầu hết các tác vụ Gulp như src() hoặc dest() sẽ trả về một luồng Node, vì vậy bạn sẽ không phải lo lắng về điều đó.

Tuy nhiên, nếu bạn có một hàm tùy chỉnh không trả lại luồng, bạn cần thêm một hàm gọi lại ở cuối luồng đó. Nếu không, bạn sẽ nhận được thông báo lỗi đó.

Để khắc phục lỗi, bạn sẽ cần thêm một hàm gọi lại như trong ví dụ sau:

function helloWorld(cb){
    console.log('Hellooooo world!');
    cb();
}

Trong helloWorld này , chúng tôi đã thêm cb() gọi lại hàm mà chúng ta đặt làm tham số, rồi gọi lại ở cuối hàm. Thêm điều này sẽ báo hiệu hoàn thành không đồng bộ và sẽ khắc phục được lỗi đang xảy ra.

Nếu bạn muốn biết thêm thông tin chuyên sâu về cách thiết lập Gulp, hãy xem khóa học của tôi, Gulp 4 cho người mới bắt đầu!