JS - Gọi hàm sau khi một hàm khác đã thực hiện xong việc



  • JS - Gọi hàm sau khi một hàm khác đã thực hiện xong việc

    Day29

    Cái này gọi là callback, nhưng bình thường chỉ đọc, chưa tự áp dụng bao giờ. Đến lúc cần cho 1 bài toán của bản thân mới thấy mình lúng ta lúng tùng.

    Bài toán: Cần chạy 1 hàm tên là crawlCodingHorror() để lấy một số bài viết, sau khi hàm chạy xong, có dữ liệu, thì in dữ liệu đó ra một file tên là data.txt.

    Giải quyết:

    Hàm để in dữ liệu ra file:

    function writeResultToFile(source, target) {
        fs.writeFileSync(target, source);
    }
    

    Hàm để lấy dữ liệu "ban đầu":

    function crawlCodingHorror() {
        // đoạn code nào đó
    }
    

    Hàm để lấy dữ liệu "sửa đổi":

    function crawlCodingHorror(callaback) {
        // đoạn code nào đó ban đầu
        callback(data_cần_ghi, 'data.text');
    }
    

    Sau đó gọi hàm lấy dữ liệu trên:

    crawlCodingHorror(writeResultToFile);
    

    Với khai báo như trên, khi hàm crawlCodingHorror() được gọi, nó sẽ thực hiện hết các phần việc được định nghĩa trong đoạn code nào đó, rồi thực hiện tiếp hàm callback, ở đây chính là writeResultToFile.

    Trong trường hợp này còn 1 cách viết khác, đấy là viết thẳng hàm fs.writeFilesync() vào cuối của khai báo crawlCodingHorror(), tuy nhiên việc viết thế này khiến cho code không tường minh:

    function crawCodingHorror() {
        // đoạn code nào đó
        fs.writeFileSync(data_cần_ghi,'data.txt');
    }
    

    ngminhtrung 13-03-2018

    Nguồn: Kipalog


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.