[JavaScript] Promise trong Javascript? Cách sử dụng Promise?

Promise được sử dụng để xử lý các hoạt động bất đồng bộ trong JavaScript. Chúng dễ quản lý khi xử lý nhiều hoạt động bất đồng bộ trong đó các lệnh callback có thể tạo callback-hell lại dẫn đến code không thể quản lý được.

Trước khi có Promise occasion, callback perform đã được sử dụng nhiều nhưng chúng có các chức năng hạn chế và tạo ra mã code không thể quản lý được. Nhiều callback perform lồng nhau sẽ tạo ra callback hell dẫn đến code không thể quản lý được. Các occasions không xử lý tốt các hoạt động bất đồng bộ.

firstFunction(args, perform() { secondFunction(args, perform() { thirdFunction(args, perform() { // And so forth… }); }); });

Promise là sự lựa chọn lý tưởng để xử lý các hoạt động bất đồng bộ một cách đơn giản nhất. Chúng có thể xử lý nhiều hoạt động bất đồng bộ một cách dễ dàng và cung cấp khả năng xử lý lỗi tốt hơn các callbacks perform và occasions.

  • Các lợi ích của Guarantees:

    1. Giúp callback perform trở nên rỏ ràng hơn
    2. Xử lý tốt các hoạt bất đồng bộ
    3. Định nghĩa tốt hơn các luồng xử lý trong các hoạt động bất đồng bộ
    4. Quản lý các lỗi một các tốt hơn
  • Các trạng thái của Guarantees:

    1. fulfilled: các xử lý liên quan khi promise đã thành công
    2. rejected: các xử lý liên quan khi promise đã thất bại
    3. pending: Promise đang chờ xử lý, tức là không có fulfilled hoặc rejected trã về
    4. settled: Promise đã thực hiện fulfilled hoặc rejected
  • Một Promise có thể được khỏi tạo bởi Promise constructor

    var promise = new Promise(perform(resolve, reject){ //do one thing });

  • Parameters

    • Hàm tạo Promise chỉ nhận một đối số là một callback perform.
    • Callback perform nhận hai đối số, resolve và reject.
    • Thực hiện các thao tác bên trong callback perform và nếu mọi thứ suôn sẻ thì hãy gọi resolve.
    • Nếu các hoạt động mong muốn xảy ra lỗi thì hãy gọi reject.

    Đây là 1 ví dụ:

    var promise = new Promise(perform(resolve, reject) { const a = ‘Okay’; const b = ‘Okay’ if(a === b) { resolve(); } else { reject(); } }); promise. then(perform () { console.log(‘Success.’); }). catch(perform () { console.log(‘Failed.’); });

    Output

    Success.

  • Promise được dùng như thế nào? Promise có thể được sử dụng bằng cách sử dụng phương thức .then và .catch.

    1. then()

    • then() được gọi khi promise trả về resolved hoặc rejected.

      Parameters:

      Phương thức .then() nhận hai hàm làm tham số.

      • Hàm đầu tiên được thực thi nếu promise được giải quyết và nhận được kết quả.
      • Hàm thứ hai được thực thi nếu promise bị rejected và nhận được lỗi. (Có một cách tốt hơn để sửa lỗi bằng cách sử dụng phương thức .catch() )

      Về cú pháp:

      .then(perform(end result){ //deal with success }, perform(error){ //deal with error })

      Ví dụ Promise Rejected:

      var promise = new Promise(perform(resolve, reject) { resolve(‘Deal with success.’); }) promise .then(perform(successMessage) { //success handler perform is invoked console.log(successMessage); }, perform(errorMessage) { console.log(errorMessage); })

      Output

      Deal with success.

      Ví dụ Promise Rejected:

      var promise = new Promise(perform(resolve, reject) { reject(‘Deal with error.’); }) promise .then(perform(successMessage) { console.log(successMessage); }, perform(errorMessage) { //error handler perform is invoked console.log(errorMessage); })

      Output

      Deal with error.

    2. catch()

    • catch() được gọi khi promise reject hoặc có lỗi xảy ra khi thực thi.

      Parameters:

      catch() nhận một perform làm tham số. Đó là perform xử lý lỗi hoặc là một promise reject.

      Cú pháp thực thi:

      .catch(perform(error) { // Handler error })

      Ví dụ về Promise Rejected

      var promise = new Promise(perform(resolve, reject) { reject(‘Promise Rejected.’); }) promise .then(perform(successMessage) { console.log(successMessage); }, perform(errorMessage) { //error handler perform is invoked console.log(errorMessage); })

      Output

      Promise Rejected.

      Hay là:

      var promise = new Promise(perform(resolve, reject) { throw new Error(‘Some error has occured.’) }) promise .then(perform(successMessage) { console.log(successMessage); }, perform(errorMessage) { //error handler perform is invoked console.log(errorMessage); })

      Output

      Some error has occured.

Vậy Promise được ứng dụng như thế nào?

  • Đó là khi bạn muốn xử lý các occasion bất đồng bộ.
  • Là một giải pháp tốt để tránh callback hell.
Có Thể Bạn Quan Tâm :   Bí ẩn về Anunnaki, hành tinh Nibiru và các giả thuyết về người ngoài hành tinh (P1)
Back to top button