JS - Gọi hàm sau khi một hàm khác đã thực hiện xong việc
TIL
594
@100daysTIL
72
White

Minh-Trung Nguyễn viết ngày 13/03/2018

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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Minh-Trung Nguyễn

58 bài viết.
72 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
44 15
Đăng lại một bài đã viết từ cách đây mấy tháng. Chủ đề này đã có không ít, nhưng chẳng hiểu sao lượng bài tự viết của dân lập trình người Việt ta v...
Minh-Trung Nguyễn viết 3 tháng trước
44 15
White
27 5
Ghi chú: Tiêu đề hoàn toàn mang tính câu view. Bài copy từ blog của tác giả :) Tại sao lại có bài viết này? Một ngày đẹp giời tôi cần kiểm t...
Minh-Trung Nguyễn viết 7 tháng trước
27 5
White
16 4
Về bước tìm và xử lý dữ liệu của Việt Nam phục vụ Data Visualization nền web Làm việc với D3js được nửa năm, một trong những điều bận lòng là chưa...
Minh-Trung Nguyễn viết 3 tháng trước
16 4
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 1 tháng trước
0 2
White
19 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
19 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
58 bài viết.
72 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!