0

Bài viết này cung cấp các mẹo và mẫu mã về cách xác định và xử lý một đối tượng Promise. Xin vui lòng bình luận / đề nghị nếu tôi không đề cập đến một hoặc nhiều điểm quan trọng. 

Làm thế nào để xác định một đối tượng hứa hẹn

Ví dụ sau đây cho thấy một mô-đun Auth trong thông tin đăng nhập API trả về một Lời hứa sẽ được giải quyết / hoàn thành hoặc bị từ chối. Đối tượng được trả về, sẽ đại diện cho một đối tượng miền, chẳng hạn như đối tượng Người dùng hoặc Lỗi với thông báo lỗi và trạng thái, như được minh họa dưới đây:

// Promise needs to be imported when executing a module using Node
//
var Promise = require("promise");

function Auth() {
}

Auth.prototype.login = function(user) {
    return new Promise(function(resolve, reject) {
        if(user.username != "" && user.password != "") {
            resolve({username: user.username, age: 21, location: "Hyderabad", firstname: "Raju", lastname: "Mastana"});
        } else {
            if(user.username == ""){
                reject({status:1, message: "Username is invalid"});
            } else {
                reject({status:2, message: "Password is invalid"});
            }
        }
    });
}

module.exports = Auth;

Cách xử lý một đối tượng hứa hẹn

Các tác vụ sau được xác định trong mẫu mã được cung cấp, gọi API đăng nhập trên đối tượng Auth:

  • Tạo một đối tượng Auth
  • Gọi API đăng nhập trên đối tượng Auth
  • Gọi phương thức "then" trên đối tượng Promise được trả về từ lệnh gọi API đăng nhập.
// Import the Auth module
//
var Auth = require('./Auth');

// Create an Auth object
//
var auth = new Auth();
//
// Calls login API on Auth object
// Returns a promise object
//
var loginPromise = auth.login({username:'', password:'pass123'});
//
// Once the state of Promise is fulfilled/resolved or rejected,
// following is executed
//
loginPromise.then(function(response){
    console.log("User name: " + response.name);
}, function(error) {
    console.log(error.message);
});
|