8 # 链式调用

简介: 8 # 链式调用

链式调用

链式调用可以解决地狱回调问题:

// 地狱回调问题 (err frist 错误第一,异步方法无法通过try catch 捕获异常)
fs.readFile("./file/name.txt", "utf-8", function (err, data) {
    console.log("name.txt--->", err, data);
    if (!err) {
        fs.readFile("./file/age.txt", "utf-8", function (err, data) {
            console.log("age.txt--->", err, data);
        });
    }
});
  1. promise 成功和失败的回调的返回值可以传递到外层的下一个 then
  2. promise 返回值情况
  • 如果返回的是普通的值的话:传递到下一次的成功中(不是错误也不是 promise 就是普通值)
  • 如果返回的是错误的情况:一定会走到下一次的失败中
  • 如果返回的是 promise 的情况:会采用 promise 的状态,决定下一步是走成功还是失败
  1. 错误处理:如果离自己最近的 then 没有错误处理(没有写错误函数)会向下找
  2. 每次执行完 promise.then 方法后返回的都是一个新的 promise (promise 一旦成功或者失败都不能去修改状态)
const fs = require("fs");
function read(filename) {
    return new Promise((resolve, reject) => {
        fs.readFile(filename, "utf-8", function (err, data) {
            if (err) reject(err);
            resolve(data);
        });
    });
}
read("./file/name.txt")
    .then((data) => {
        // return 123;
        return read("./file/age.txt");
        // throw new Error("接口异常");
    })
    .then(
        (data) => {
            console.log("success----->", data);
        },
        (err) => {
            console.log("err----->", err);
        }
    );

目录
相关文章
|
8天前
嵌套调用和链式访问
嵌套调用和链式访问
16 0
|
7月前
|
前端开发
9 # 实现链式调用里普通值处理
9 # 实现链式调用里普通值处理
19 0
|
8天前
|
前端开发
Promise链式调用与错误处理
Promise链式调用是处理异步操作的方式,它按顺序执行多个任务,每个任务返回Promise对象。通过`.then()`指定成功后的操作,`.catch()`处理错误。示例代码展示了如何使用fetch获取数据,根据状态码解析响应并处理数据,错误则通过`.catch()`捕获。另一个例子定义了三个异步函数构成Promise链,依次执行并处理结果,错误同样由`.catch()`统一管理。
|
7天前
|
前端开发 JavaScript
Promise的链式调用案例讲解
Promise的链式调用案例讲解
|
8天前
|
算法 Python
函数的递归调用与嵌套调用详解
函数的递归调用与嵌套调用详解
41 0
|
8天前
|
前端开发
Promise的链式调用
Promise的链式调用是指在一个Promise对象上连续调用多个then方法的过程。通过链式调用,可以将多个异步操作按照顺序执行,并且可以在每个操作完成后处理返回的结果。
33 0
|
9月前
|
前端开发 程序员
promise的链式调用和promise的嵌套的实现
promise的链式调用和promise的嵌套的实现
144 0
继承情况下链式调用的异常处理
关于abstract class B<T extends B<T>> ,class A extends B<A>的用法?该用法用在链式调用中有继承关系时该如何使用
Chain链式调用
Chain链式调用
96 0
Chain链式调用
|
程序员 编译器 C++
函数的嵌套调用和链式访问
函数的嵌套调用和链式访问

热门文章

最新文章