Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Promise – Async thì sao nào?

    Frontend
    javascript
    6
    16
    20704
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kxd993 last edited by

      Thanks bác cuối cùng cũng có người post bài này 🙂 e copy lại cho chắc

      1 Reply Last reply Reply Quote 0
      • J
        jokyspy @thuanitdn last edited by

        @thuanitdn Mình cũng rất thích thư viện này. Nhưng khi dùng async thì không có kiểu promise1.then(promise2).then(promise3) đẹp mắt như thế kia. 😢

        1 Reply Last reply Reply Quote 0
        • T
          truongnguyen last edited by cuuthegioi

          Nếu được thì các anh có thể viết 1 bài viết về https://github.com/caolan/async được không ak.Để so sánh giữa ASYNC và promise ak

          1 Reply Last reply Reply Quote 0
          • lynam
            lynam last edited by

            Còn cách dùng Async vs await keyword thì thế nào bạn ơi, khi mình tìm hiểu về starter kit React
            họ viết toàn bằng những keyword này, mình hiểu ý nghĩa nhưng lại không biết cách sử dụng và thực hành...

            <3 React, Meteor JS...

            1 Reply Last reply Reply Quote 0
            • trungducng
              trungducng last edited by

              This post is deleted!
              ? rikky Lê Mạnh Hùng 3 Replies Last reply Reply Quote -3
              • ?
                A Former User @trungducng last edited by A Former User

                @trungducng mình thấy bài viết khá vui vẻ. Phải hiểu Promise tương đối sâu mới viết được như vậy.

                Nhân tiện share cái promise-wtf cây nhà lá vườn. Bluebird và Async thì quá ngon rồi. Nhưng hiện nay hầu hết các trình duyệt đã hỗ trợ built-in Promise, ôm mấy cục Bluebird, Async to đùng về browser thì cũng mệt. Nhưng dùng native Promise thì lại không có cái .finally thành ra hơi thiếu thiếu (finally proposal đang còn ở stage 2). Vậy là phải chế ra em này, inherits cái native, bổ sung finally() và series(). Có buff thêm chút polyfill nhẹ nhẹ - không pass A+ test suite - cho trình duyệt cổ đại, nói chung cũng đủ đồ chơi cho anh em nào thích gọn gàng linh hoạt 😃

                vahaha 1 Reply Last reply Reply Quote 2
                • vahaha
                  vahaha @Guest last edited by vahaha

                  @ndaidong Like module của bạn, nhưng mình thấy hàm 'then' có thể đảm nhận vai trò của 'finally'. Ví dụ mình thay đoạn của bạn:

                  //However, it's better to have "finally" there:
                    return Article.list(skip, limit).then((result) => {
                      data.entries = result;
                    }).catch((err) => {
                      data.error = err;
                    }).finally(() => {
                      res.render('landing', data);
                    });
                  };
                  

                  Bằng đoạn:

                  // thay finally bằng then.
                    return Article.list(skip, limit).then((result) => {
                      data.entries = result;
                    }).catch((err) => {
                      data.error = err;
                    }).then(() => {
                      res.render('landing', data);
                    });
                  };
                  
                  • . ^
                  ? 1 Reply Last reply Reply Quote 2
                  • ?
                    A Former User @vahaha last edited by

                    @vahaha thông thường thì đúng như bạn nói. Nhiều trường hợp then có thể thay cho finally. Nhưng nhiều trường hợp thì không. Chẳng hạn trong cái catch mình throw ra 1 exception thì then sau đó sẽ không bắt được.

                    vahaha 1 Reply Last reply Reply Quote 1
                    • vahaha
                      vahaha @Guest last edited by

                      @ndaidong Ah, mình hiểu ý tưởng của bạn rồi. Như vậy thì code sẽ gọn hơn.

                      • . ^
                      1 Reply Last reply Reply Quote 0
                      • rikky
                        rikky @trungducng last edited by

                        @trungducng

                        Tác giả gốc của bài viết đây 😂

                        Số là mình viết bài này cách đây tầm 3 năm, từ cái thời 4rum cũ. Mục đích ban đầu mình viết là để chửi sml mấy bài viết khác trong 4rum vì cái tội chém linh tinh về Promise.

                        Vì sau này 4rum đổi DB, các bài viết cũ không còn nữa, mấy anh em repost bài này lại censore hết các đoạn chửi gay cấn, nên thành ra nó lan man 😁

                        Khoa Lê Duy Tung Nguyen215 2 Replies Last reply Reply Quote 6
                        • Khoa Lê Duy
                          Khoa Lê Duy @rikky last edited by

                          @rikky Không liên quan lắm
                          Nhưng không nhầm bạn làm ở sphinx?
                          Chúng ta đã quen nhau 🙂

                          1 Reply Last reply Reply Quote -5
                          • Lê Mạnh Hùng
                            Lê Mạnh Hùng @trungducng last edited by

                            @trungducng mình xin lỗi 😞

                            http://fantasticvn.com/

                            1 Reply Last reply Reply Quote 6
                            • ?
                              A Former User last edited by A Former User

                              Chính chủ về rồi. Bác rikky này mới là cao thủ Node.js chân chính. Sau thời Promise thì nay đã đến thời monads, bữa nào rảnh rỗi làm bài thông não anh em tôn thờ chủ nghĩa functional programming đi bác 😃

                              1 Reply Last reply Reply Quote 2
                              • Tung Nguyen215
                                Tung Nguyen215 @rikky last edited by

                                Bài này viết từ 2 năm trước rồi của rikky, bạn này đổi tài khoản admin cũ của rikky để restore db. Chứ bạn này ko cố tình sao chép lại.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post
                                $(document).ready(function () { app.coldLoad(); }); }