private String categroy; private String level; private Integer gradeldId; //关联主表id } 2.创建返回类...Dto 用来接收查询出来的结果 @Data public class ResultDto { private Integer id; private String name;...,特别要注意的是ofType这个要指向各自表的实体类,然后子表的column属性不要和主表重名,一旦重名就会出问题,不知道是不是我配置的问题,希望有大佬指教,反正不重名就可以 接下来就是查询语句了,很简单...,只要别名和上面resultMap对的上就ok 4.SQL //SQL: SELECT...z_test_grade ztg LEFT JOIN z_test_teacher ztt ON ztt.gradeld_id = ztg.id 5.返回结果数据
是带有resolve和reject两个参数的函数。...(iterable) 这个方法返回一个新的promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise...如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise...通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value)来返回一个Promise对象,这样就能将该value以Promise对象形式使用。...; // true p2.then((value) => { console.log(value); // 1 }); // 如果该值带有`then`方法的对象),返回的`Promise`对象的最终状态由
Promise对象用于表示一个异步操作的最终状态以及操作的值。Promise本质上是一个绑定了回调的对象,区别于将回调传入函数内部。...*/ ); Promise构造函数传入一个参数executor函数,executor是带有resolve和reject两个参数的函数。...Promise方法 方法 描述 Promise.reject(reason) 返回一个Promise对象,状态设置为失败并传递失败原因给处理函数 Promise.resolve(value) 返回一个promise...promise对象数组的执行结果,和iterable每个对象的顺序保持一致 Promise.race(iterable) 返回一个Promise,按照iterable数组任意promise对象最先执行完毕的结果立即返回...对象的属性和方法,已经promise对象从原型链继承的属性和方法,现在我们需要一步一步自己去实现一个Promise类。
Promise.resolve() Promise.resolve(value)方法返回一个以给定值解析后的Promise对象。如果value是Promise对象,则直接返回该promise。...否则返回一个新的Promise对象。...Promise.reject() Promise.reject() 方法返回一个带有拒绝原因的 Promise 对象。所以只需要直接返回一个新的Promise对象就行了。...Set) 返回一个新的 Promise,当所有的 promise 都成功才成功,且结果为成功的结果组成的数组;有一个失败就直接失败,返回的结果就是失败的那一个的结果。...(如果有多个,则返回第一个错误的) const p1 = new Promise((resolve, reject) => { resolve("p1: OK"); }); const p2 = Promise.resolve
这些方法还会返回一个新生成的 promise 对象,这个对象可以被非强制性的用来做链式调用。...返回一个 promise,该 promise 在所有 promise 完成后完成。并带有一个对象数组,每个对象对应每个 promise 的结果。...# Promise.reject(reason) (opens new window) 返回一个状态为失败的 Promise 对象,并将给定的失败信息传递给对应的处理方法。...如果该值是 thenable (即,带有 then 方法的对象),返回的 Promise 对象的最终状态由 then 方法执行决定;否则的话(该 value 为空,基本类型或者不带 then 方法的对象...' + successMessage); }); # 实现 # 实现 resolve 要点: 传参为一个 Promise 对象, 则直接返回它 传参为一个 thenable 对象,返回的 Promise
如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是thenable(即带有"then" 方法),返回的promise会“跟随”这个thenable的对象,采用它的最终状态...()方法返回一个带有拒绝原因的Promise对象。...或rejected后的promise,并带有一个对象数组,每个对象表示对应的promise结果。...() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。...如果传入的参数是一个空的可迭代对象,则返回一个 已失败(already rejected) 状态的 Promise。
---- 1.语法 new Promise( function(resolve, reject) {...} /* executor */ ); 参数 executor executor是带有resolve...Promise构造函数执行时立即调用executor函数,resolve和reject两个函数作为参数传递给executor(executor函数在Promise返回所建promise实例对象前被调用)...---- 2.描述 promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你对异步操作的成功和失败分别绑定对应的处理方法。...这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象。...,只需让其返回一个promise即可 function myAsyncFun(url){ return new Promise((resolve, reject)=>{ const xhr
catch方法返回的还是一个 Promise 对象,因此后面还可以接着调用then方法。...从上面的代码中我们还可以看出一个点,就是如果reject和resolve方法带有参数,则会将参数传递后相应的回调函数中。...resolve(p1); }) 在上面代码中,p1和p2都是promise实例对象,而p2的resolve函数将p1作为参数传入,即一个异步操作的结果返回的是另一个异步操作。...如果参数是一个原始值,或者是一个不具有then方法的对象,则Promise.resolve方法返回一个新的 Promise 对象,状态为resolved。...Promise.resolve方法的参数,会同时传给回调函数。 4)不带有任何参数 Promise.resolve方法允许调用时不带参数,直接返回一个resolved状态的 Promise 对象。
如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是thenable(即带有"then" 方法),返回的promise会“跟随”这个thenable的对象,采用它的最终状态...('error') 相当于下方函数: const p=new Promise(reject=>{ reject('11111') })Promise.reject()方法返回一个带有拒绝原因的Promise...或rejected后的promise,并带有一个对象数组,每个对象表示对应的promise结果。...() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。...如果传入的参数是一个空的可迭代对象,则返回一个 已失败(already rejected) 状态的 Promise。
all 方法在所有输入的 Promise 实例都 resolve 后执行自身的 resolve 回调,在任意一个输入的 Promise 实例 reject 后执行自身的 reject 回调。...any 方法在所有输入的 Promise 实例都 reject 后执行自身的 reject 回调,在任意一个输入的 Promise 实例 resolve 后执行自身的 resolve 回调。...返回的 Promise 实例的 终值(eventual)或拒因(reason) 不同 {status:'fulfilled', value:同一个终值} 参数为空迭代对象时,返回值不同 AggregateError...插播一下 Promise.resolve 这个函数: Promise.resolve(value)方法返回一个以给定值解析后的 Promise 对象。...如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是 thenable(即带有"then" 方法),返回的 promise 会“跟随”这个 thenable 的对象,采用它的最终状态
)方法返回一个以给定值解析后的Promise 对象。...如果这个值是一个 promise ,那么将返回这个 promise ; 如果这个值是thenable(即带有"then"方法),返回的promise会“跟随”这个thenable的对象,采用它的最终状态...Promise.reject 简要回顾 Promise.reject()方法返回一个带有拒绝原因的Promise对象。...Promise 对象,并返回一个新的 Promise 对象。...// 并且对齐进行监听,将我们自己返回的Promise的resolve,reject传递给p,哪个先改变状态,我们返回的Promise也将会是什么状态 Promise.resolve(p).
这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的 Promise 对象。 Promise 对象有以下两个特点: 对象的状态不受外界影响。...executor 是带有 resolve 和 reject 两个参数的函数 。...这时,前一个回调函数,有可能返回的还是一个 Promise 对象(即有异步操作),这时后一个回调函数,就会等待该 Promise 对象的状态发生变化,才会被调用。...(3)参数不是具有 then 方法的对象,或根本就不是对象 如果参数是一个原始值,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为...(1); p1.then(function (n) { console.log(n) }); // 1 (4)不带有任何参数 Promise.resolve 方法允许调用时不带参数,直接返回一个
}); 四、Promise.resolve(value) resolve() 方法返回一个给定解析后 Promise 对象,resolve 里面如果传递一个 Promise 对象,那么传递的也是 Promise.../ expected output: 123 }); 更多示例:传送门 五、Promise.reject(reason) reject()方法返回一个带有拒绝原因的Promise对象,参数即为被拒绝的原因...的回调结果是一个数组,即我们传入的所有 Promise 实例 reject 表示只有一个失败,则返回第一个失败的结果 成功的案例 let p = new Promise((resolve, reject...返回值: 如果传入的参数是一个空的可迭代对象,则返回一个 已失败(already rejected) 状态的 Promise。...只要传入的迭代对象中的任何一个 promise 变成成功(resolve)状态,或者其中的所有的 promises 都失败,那么返回的 promise 就会 异步地(当调用栈为空时) 变成成功/失败(resolved
/reject Promise.reject(reason)方法返回一个带有拒绝原因reason参数的Promise对象。...value可传的值 将被Promise对象解析的参数。 一个Promise对象, 一个thenable。...如果该值为promise,返回这个promise; 如果这个值是thenable(即带有"then" 方法)),返回的promise会“跟随”这个thenable的对象,采用它的最终状态; 否则返回的promise...async 函数时,会返回一个 Promise 对象。...根据mdn的解释 当这个 async 函数返回一个值时,Promise 的 resolve 方法会负责传递这个值; 当 async 函数抛出异常时,Promise 的 reject 方法也会传递这个异常值
Promise介绍 promise是一个对象,从它可以获取异步操作的消息。有all、race、reject、resolve这几个方法,原型上有then、catch等方法。...Promise的两个特点: 对象的状态不受外界影响。Promise对象获取的是异步操作,有三种状态:pending(进行中)、fulfilled(已成功)、reject(已失败)。...const p =new Promise((resolve,reject)=>{ resolve("成功") }) p.then((res)=>{ console.log(res)//返回成功 },...(err)=>{ console.log(err) }) 带有多个回调函数时 const p =new Promise((resolve,reject)=>{ resolve(1) }) p.then...('resolve') }).then(res4=>{ console.log('res4',res4) //resolve }) catch用法 与Promise对象方法then并行的还有一个catch
} /* Promise原型对象的then() 指定成功和失败的回调函数 返回一个新的promise对象 返回promise的结果由onResolved...(undefined, onRejected) } /* Promise函数对象的resolve方法 返回一个指定结果的成功的promise */ static...(value) } }) } /* Promise函数对象的reject方法 返回一个指定reason的失败的promise */...) => { reject(reason) }) } /* Promise函数对象的all方法 返回一个promise, 只有当所有proimse...true * value: 33 */ Promise.reject() // Promise.reject(reason)方法返回一个带有拒绝原因reason参数的Promise对象。
就说一句,如果 then 中返回的是一个 Promise 对象,那么接下来的 then 其实是这个 Promise 对象的 then,而不是一开始的 Promise 的 then 了。...6.1 Promise.all() Promise.all() 方法可以接收多个 Promise 对象,并且只返回一个 Promise 实例,这个方法会等所有输入的 Promise 对象的 resolve...方法都返回的时候,或者所有输入的 Promise 对象中有一个 reject 的时候,这个 all 就会执行结束,来看如下一个案例: const promise1 = Promise.resolve(...6.3 Promise.reject() Promise.reject() 方法返回一个带有 reject 原因的 Promise 对象。...6.4 Promise.resolve() Promise.resolve(value) 方法返回一个以给定值解析后的 Promise 对象。
使用Promise 上述已说到,Promise是一个对象,那么它肯定是由其构造函数来创建。其构造函数接受一个函数作为参数,其函数的参数有2个,分别是resolve和reject。...❝定义Promise构造函数 ❞ 创建Promise对象使用new Promise((resolve, reject) => {}),可知道Promise构造函数的参数是一个函数,我们将其定义为implement...,函数带有2个参数:resolve,reject,而这2个参数又可执行,所以也是一个函数。...链式调用是指Promise在状态是fulfilled后,又开始执行下一个Promise。要实现这个功能,我们只需要在then()里返回Promise就好了,说起来好像是挺简单的。...否则会一直调用自己 判断x的类型,如果不是函数或对象,直接resolve(x) 判断x是否拥有then(),并且如果then()是一个函数,那么就可执行x的then(),并且带有成功与失败的回调 flag
以下是纯干货总结的手写版笔试题代码,拿走不谢! Promise 变体 promise.first 第一个返回成功的 Promise if (!...}); }); }; } promise.last 最后一个返回成功的 Promise if (!...setTimeout(resolve, sleepTime); }); } JS 实现一个带有并发限制的异步调度器 题意 JS 实现一个带有并发限制的异步调度器 Scheduler,保证同时运行的任务最多有十个...Promise 要点 Promise 是一个类,传入的参数是一个执行器,会立即执行 Promise 有三种状态 pending 等待 fulfilled 完成 rejected 失败 状态只能改变一次...(param) { // param是Promise对象,直接返回 if (param instanceof Promise) { return param; }