function fn1() { var promise = new Promise(function(resolve, reject) { // ... some code if ( /*异步操作成功*/ ) { resolve(value); //怎么将这个值作为fn1函数的返回值? } else { reject(error); } }); return promise.then(function(value) { return value; //这么写对吗? }) } 总...
function fn1() { var promise = new Promise(function(resolve, reject) { // ... some code if ( /*异步操作成功*/ ) { resolve(value); //怎么将这个值作为fn1函数的返回值? } else { reject(error); } }); return promise.then(function(value) { return value; //这么写对吗? }) } 总...
注意: 如果 value 是一个Promise对象的话 , 会直接返回该Promise对象 代码如下: Copy letpromise =newPromise((resovle, reject) =>{resovle(value);//state: pending --> fulfilled,result: undefine --> valuereject(error));//state: pending --> rejected, result: undefine --> errorthrownewError("er...
then方法会返回一个Promise对象,这个对象的PromiseValue通过then调用的函数里的return赋值。 注:如果return的是一个Promise对象,then就会直接返回这个对象。 4、链式写法 then方法返回的是一个新的Promise实例,(注意:不是原来那个Promise实例)。因此可以采用链式写法。 A().then(function (people) {returnPromise.all([...
Promise的实例拥有[[PromiseStatus]]/[[PromiseValue]] [[PromiseStatus]]是promise状态(要么是成功态要么是失败态) 准备状态pending:new Promise的时候默认状态就是pending 成功状态fulfilled/resolved:一般在异步操作成功后,我们通过执行resolved函数,可以把promise的状态改为resolved ...
// console.log(value); if(value == 1){ return value }else { throw('第二个不等于0') } }).catch((err) => { console.log(err,'捕捉错误'); }).finally(() => { console.log("End"); }); new 一个promise时,就已经开始自动执行函数。promise是同步的,但then是异步的,要注意区分 ...
第一,直接new一个promise对象 letpromise=newPromise(function(resolve,reject){//异步操作的代码if(){//判断是否成功resolve(value)//成功后执行代码,值可以再promise.then(value)取出}else{reject(err)//捕获错误}}) 第二,在函数中用return 返回promise对象,可以传参 ...
resolve是 Promise 构造函数内部传入的一个函数引用,当异步操作成功完成时调用它。调用resolve(value)会使得 Promise 变为fulfilled状态,并将结果value传递给后续通过.then()注册的成功回调。 newPromise((resolve,reject)=>{// 异步操作完成后resolve(someValue);}); ...
functiontimeout(ms){returnnewPromise((resolve,reject)=>{setTimeout(()=>{resolve('done')},ms);});}timeout(100).then(value=>{console.log(value);// done}); then方法返回的是一个新的Promise实例(注意,不是原来那个Promise实例)。因此可以采用链式写法,即then方法后面再调用另一个then方法。
接受一个具有Iterable接口的类型,如数组,Map,Set,传入多个promise, 其中有一个promise返回了,不管是fulfilled或者rejected,直接返回这个promise的结果 function p1() { var promise1 = new Promise(function (resolve, reject) { console.log("p1的第一条输出语句"); resolve("p1完成"); }); return promise1; ...