Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js promise原理

作者:/神經病/   发布日期:2026-05-14   浏览:102

// 创建一个 Promise 对象
const myPromise = new Promise((resolve, reject) => {
    // 模拟异步操作,比如网络请求或定时器
    setTimeout(() => {
        const success = true; // 假设操作成功

        if (success) {
            resolve('操作成功'); // 成功时调用 resolve
        } else {
            reject('操作失败'); // 失败时调用 reject
        }
    }, 1000);
});

// 使用 then 方法处理 Promise 的成功和失败情况
myPromise
    .then(result => {
        console.log(result); // 输出: 操作成功
    })
    .catch(error => {
        console.error(error); // 如果失败会输出错误信息
    });

// 也可以链式调用多个 then 方法
myPromise
    .then(result => {
        console.log(result); // 输出: 操作成功
        return '继续处理';
    })
    .then(nextResult => {
        console.log(nextResult); // 输出: 继续处理
    })
    .catch(error => {
        console.error(error); // 如果前面任何一个步骤失败会输出错误信息
    });

解释说明:

  1. Promise 构造函数new Promise((resolve, reject) => {...}) 是创建一个 Promise 对象的方式。构造函数接收一个执行器函数作为参数,该函数有两个参数 resolvereject,分别用于在异步操作成功或失败时调用。

  2. then 方法then 方法用于处理 Promise 成功的情况。它可以接收两个回调函数作为参数,第一个是当 Promise 被 resolve 时调用的函数,第二个是可选的,用于处理 Promise 被 reject 的情况。

  3. catch 方法catch 方法用于捕获 Promise 链中任何地方发生的错误(即 reject 的情况)。它相当于在每个 then 方法中都添加了一个错误处理的回调。

  4. 链式调用:Promise 支持链式调用多个 then 方法,每个 then 方法可以返回一个新的 Promise 或者普通值,后续的 then 会根据返回值继续执行。

  5. 异步操作:在这个例子中,我们使用了 setTimeout 来模拟一个异步操作,实际开发中可能是 AJAX 请求、文件读取等操作。

上一篇:js promise用法

下一篇:js use strict

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站