[Xin hướng dẫn] Sử dụng Promies trong NodeJS



  • Các bạn tham khảo tài liệu promise ở đây
    https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise

    Mình dùng promise khi mình muốn thực thi lệnh hay tập lệnh bất đồng bộ kết quả không trược trả về ngay tức thời. Mà chúng ta chỉ biết được kết quả (có thể success hay fail thông qua resolve hay reject)

    Ví dụ đơn giản của promise:

    var p1 = new Promise(function (resolve, reject) {
      jQuery.get('http://hostname/data/config.json', function( data ) {
        resolve(data);
      })
    });
    
    //
    p1.then(function(dataReturnedByResolve) {
    });
    

    Đôi khi dùng promise thì code của mình có thể dài hơn. Đa số các JS Lib viết sau này đều dùng Promise.

    Trong đặc tả của ES6 đã có promise, Hầu hết cái JS runtime mới như firefox, chrome, safari, node 4+ đều đã support promise.
    Bluebird là lib implement Promise có thể chạy trên ES5. Bluebrid cũng add thêm vài chức năng.

    papa elf

    0


  • Nên sử dụng bluebird để bọc các callback lại ngoài ra sử dụng Promise.all() của bluebird chạy song song rất nhanh nhé =))



  • Nhanh ak bạn? Sao mình thấy người ta nói là sẽ lâu chứ vì nó sẽ đồng bộ tất cả các hàm? Mình chưa hiểu lắm.



  • Promises là cơ chế bất đồng bộ nhé



  • Sao mình cảm thấy khó hiểu quá :D Tự học vất vả thế :D



  • nên kiếm 1 người có thể trao đổi trực tiếp, thế sẽ tiến bộ nhanh hơn ^^



  • Uhm lúc mình mới học thì cũng thấy khó hiểu lắm,

    Nếu bạn k hiểu được, thì bạn cứ dùng callback đi,

    Cho đến một lúc nào đó, bạn thấy sao code mình rối thế, làm sao để improve đây, rồi lúc đó bạn sẽ nghĩ đến việc dùng Promise.

    Lúc đó bạn sẽ tự khắc hiểu ra được thui.

    Đó là cách học của mình, rất khó quên.

    Đây là một bài viết của mình, dùng Jquery. Căn bản nó cũng là Promise thui.

    https://daynhauhoc.com/t/su-dung-jquery-deferred-de-thuc-thi-tuan-tu-nhung-tac-vu-bat-dong-bo/30767

    Promise là mô hình lập trình có từ những năm 1970 rùi. ahjhj

    Nhưng nó vẫn mới mẻ với mình lúc mình học nó.



  • This post is deleted!


  • @Bui-Minh-Phong p đọc thêm bài này của @Lê-Mạnh-Hùng nhé, rất hay và bổ ích đấy
    https://nodejs.vn/topic/15/promise-async-thì-sao-nào



  • Hi @Bui-Minh-Phong .

    Nếu bạn muốn tìm hiểu kỹ về Promise thì bạn nên đọc cái ni nì :)
    https://github.com/getify/You-Dont-Know-JS/blob/master/async %26 performance/ch3.md

    Trong quyển này nó nói rất rõ cho bạn biết Promise là gì và phải sử dụng như thế nào cho đúng.


Log in to reply