如何使用 Promise

Promise 是一個非同步操作的物件。他可以讓你在某段程式結束後對應結果做不同的事情。

使用方式有兩種,一種是物件,另一種是包裝成函式。
1. 物件
var promise1 = new Promise(function (resolve, reject) {
    // do something
    // return resolve(successMessage); // 成功
    // or
    // return reject(errorMessage); // 失敗
    setTimeout(function() {
        resolve('success');
        // reject('error');
    }, 1000);
});
promise1.then(function (successMessage) {
    // 成功要做的事情
    console.log(successMessage);
}).catch(function (errorMessage) {
    // 失敗要做的事情
    console.log(errorMessage);
});

// 執行 promose
promise1;

2. 函式
function myPromiseFunction(value) {
    return new Promise(function (resolve, reject) {
        // do something
        // return resolve(successMessage); // 成功
        // or
        // return reject(errorMessage); // 失敗
        console.log(value);
        setTimeout(function() {
            resolve('success');
            // reject('error');
        }, 1000);
    });
};

myPromiseFunction('test').then(function (successMessage) {
    // 成功要做的事情
    console.log(successMessage);
}).catch(function (errorMessage) {
    // 失敗要做的事情
    console.log(errorMessage);
});

留言