Promise " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

璇﹁ВPromise鐨勭敤娉?鍚獷S7)

扬州沐宇科技
2024-02-04 11:18:53
Promise

Promise鏄竴绉嶇敤鏉ュ鐞嗗紓姝ユ搷浣滅殑鏈哄埗锛屽彲浠ョ敤浜庤В鍐冲洖璋冨湴鐙辩殑闂銆傚畠鐨勬牳蹇冩€濇兂鏄皢寮傛鎿嶄綔灏佽鎴愪竴涓狿romise瀵硅薄锛岄€氳繃閾惧紡璋冪敤鐨勬柟寮忔潵澶勭悊寮傛鎿嶄綔鐨勭粨鏋溿€?/p>

Promise瀵硅薄鏈変笁绉嶇姸鎬侊細pending锛堣繘琛屼腑锛夈€乫ulfilled锛堝凡鎴愬姛锛夊拰rejected锛堝凡澶辫触锛夈€備竴鏃romise瀵硅薄鐨勭姸鎬佸彉涓篺ulfilled鎴杛ejected锛屽氨浼氳皟鐢ㄧ浉搴旂殑鍥炶皟鍑芥暟銆?/p>

Promise瀵硅薄鐨勫熀鏈敤娉曞涓嬶細

1.鍒涘缓Promise瀵硅薄锛?/p>

const promise = new Promise((resolve, reject) => {
    // 寮傛鎿嶄綔
    // 濡傛灉鎿嶄綔鎴愬姛锛岃皟鐢╮esolve鏂规硶骞朵紶鍏ョ粨鏋?/span>
    // 濡傛灉鎿嶄綔澶辫触锛岃皟鐢╮eject鏂规硶骞朵紶鍏ラ敊璇俊鎭?/span>
});

2.澶勭悊Promise瀵硅薄鐨勭粨鏋滐細

promise
    .then(result => {
        // 澶勭悊鎴愬姛鐨勭粨鏋?/span>
    })
    .catch(error => {
        // 澶勭悊澶辫触鐨勭粨鏋?/span>
    });

3.鍦≒romise瀵硅薄涓彲浠ュ祵濂楀叾浠栧紓姝ユ搷浣滐細

const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve('success');
    }, 1000);
});

promise
    .then(result => {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(result.toUpperCase());
            }, 1000);
        });
    })
    .then(result => {
        console.log(result); // SUCCESS
    })
    .catch(error => {
        console.error(error);
    });

ES7涓紩鍏ヤ簡async/await鍏抽敭瀛楋紝鍙互鏇存柟渚垮湴浣跨敤Promise銆備娇鐢╝sync鍏抽敭瀛楀畾涔変竴涓紓姝ュ嚱鏁帮紝鍏朵腑鍙互浣跨敤await鍏抽敭瀛楁潵绛夊緟寮傛鎿嶄綔鐨勭粨鏋溿€?/p>

4.async/await鐨勫熀鏈敤娉曪細

async function getData() {
    try {
        const result1 = await asyncFunc1();
        const result2 = await asyncFunc2(result1);
        console.log(result2);
    } catch (error) {
        console.error(error);
    }
}

鍏朵腑锛宎syncFunc1鍜宎syncFunc2閮芥槸杩斿洖Promise瀵硅薄鐨勫紓姝ュ嚱鏁般€?/p>

閫氳繃async/await鍙互浣垮紓姝ヤ唬鐮佺湅璧锋潵鏇村儚鍚屾浠g爜锛屾彁楂樺彲璇绘€с€備絾闇€瑕佹敞鎰忕殑鏄紝await鍙兘鍦╝sync鍑芥暟鍐呴儴浣跨敤銆?/p>

扫码添加客服微信