https://stackoverflow.com/questions/36734900/what-happens-if-we-dont-resolve-or-reject-the-promise I have a scenario where I am returning a promise. The promise basically give the response of a ajax request. On rejecting the promise it shows an error…
答案: 需要 今日碰到一个问题, 是我的同事发现的,如果不说的话可能一直没有注意到 这个代码 在reject 后还会执行, 但是谁也没有注意到, 但是不会报错, 因为当一个promise是resolve或者rejected状态时,它将会一直维持该状态.所以,reject一个resolve的promise或者resolve一个rejected的promise是没有任何效果的. 但是当你在下面执行插入操作的时候依然会执行,所以建议一定要加return.…
Promise解决的问题相信每个前端都遇到过这样一个问题,当一个异步任务的执行需要依赖另一个异步任务的结果时,我们一般会将两个异步任务嵌套起来,这种情况发生一两次还可以忍,但是发生很多次之后,就形成了所谓的回调地狱,代码层层嵌套,环环相扣,很明显,逻辑稍微复杂一些,这样的程序就会变得难以维护.就比如我们昨天的那个回调地狱的例子: function funA(callback) { console.log("A"); setTimeout(() = > { callback() }…
首先来说下同步异步与阻塞非阻塞的概念,同步异步与阻塞非阻塞并没有关系.同步异步主要是事情做完以后,如何进行处理.或者说关注的是一种消息通信机制. 同步的情况下,是由处理消息者自己去等待消息是否被触发: 而异步的情况下是由触发机制来通知处理消息者 举例: 所以同步异步可以说是对被请求方来说的,被请求者使用什么方式来告知处理结果 思考,思考.......,好了,有答案了,当场告诉你 -------- 同步 这个问题需要一点时间,你先做点别的,等我想好了,去找你. --------异步 阻塞非阻塞,主…
看了promise的用法,一直不明白里面的resolve和reject的用法: 运行了这两段代码之后彻底理解了promise的用法: var p = new Promise(function (resolve, reject) { var timer = setTimeout(function () { console.log('执行操作1'); resolve('这是数据1'); }, 1000); }); p.then(function (data) { console.log(data);…
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性.其核心是,promise是一个带有then()函数的对象. 使用promise机制的优点如下: 1.可以对函数进行链式调用,所以你不会陷入代码缩进噩梦中: 2.在调用链的过程中,可以保证上一个函数调用完成之后才会调用下一个函数: 3.每一个then()调用都带有两个参数(两个都是函数).第一个是成功之后的回调,第二个是出错之后的处理器: 4.如果调用链中出现了错误,错误将会被冒…
直接打印出来看看吧,console.dir(Promise). 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法.这么说用Promise new出来的对象肯定就有then.catch方法喽,没错. Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. Promise 提供统一…
//Promise.resolve()和Promise.reject()常用来生成已经被决议为失败或者成功的promise案例 //Promise.reject()简单一些,不管传给它什么值,它决议为失败后就会直接把这个值传递过来 一.Promise.resolve1.传递一个普通的值(比如字符串,数字等等) let p1 = new Promise(resolve => { resolve('成功'); }) //和上面是等价的 let p2 = Promise.resolve('成功');…
新的ES6中引入了promise的概念,目的是让回调更为优雅.层层嵌套的回调会让javascript失去美感和可读性,同时javascript也推荐采用链式的方式去书写函数调用.于是Promise就应运而生.Promise即承诺的意思,new一个Promise就是新建一个承诺.在新建一个承诺的时候你需要做两件事情: 1.指定承诺所需完成的事 2.设置承诺是否实现的标准 下面我们来定义一个承诺: 1.承诺的内容:“获取data.php的数据”, 2.承诺是否实现的评判是:“是否获取data.php…