精华内容
下载资源
问答
  • function downloadData() { ... return new Promise(function (resolve,reject) { setTimeout(function () { console.log(1) reject('1') },1000) }) } function downloadFallbackData(){ return
    function downloadData() {
    	return new Promise(function (resolve,reject) {
    		setTimeout(function () {
    			console.log(1)
    			reject('1')
    		},1000)
    	})
    }
    function downloadFallbackData(){
    	return new Promise(function (resolve,reject) {
    		setTimeout(function () {
    			console.log(2);
    			reject('2')
    		},1000)
    	})
    }
    function downloadFallbackData2(){
    	return new Promise(function (resolve,reject) {
    		setTimeout(function () {
    			console.log(4);
    			reject('4')
    		},1000)
    	})
    }
    
    
    async function getProcessedData(url) {
    	let v;
    	try {
    		v = await downloadData(url);
    	} catch (e) {
    		return e;//会返回到外面的then
    		try{
    			v = await downloadFallbackData(url);//如果完蛋了,就没有下面的return 3
    		}catch (e){
    			v = await downloadFallbackData2(url);
    		}
    
    
    	}
    	console.log(3)
    	return 3;//上面有resolve才会到这里
    }
    getProcessedData().then(function (e) {
    	console.log('43',e);
    }).catch(function () {
    	
    })
    
    展开全文
  • promisereturn解析

    千次阅读 2020-10-27 16:16:42
    希望在promisereturn结果 function fun() { return new Promise((resolve, reject) => { resolve('模拟axios') }) } function test() { return fun().then(res => { console.log('1,',res) return 1...

    希望在promise中return结果

    测试1

    function fun() {
        return new Promise((resolve, reject) => {
        	resolve('模拟axios')
        })
    }
    function test() {
      	return fun().then(res => {
           console.log('1,',res)
           return 1
         }).then(res => {
            console.log('2,',res)
            return 2
         }).then(res => {        
         	console.log('3,',res)
         	return 3
         }).catch(err=>{
            console.log('#err',err)
    	})
    }
    

    运行一下test方法,每一步 return 一个值,显而易见,收到的参数都是上一步的结果
    test运行结果
    获得方法运行的结果

    let result = test()
    

    result
    最终抛出结果,要在result之后再做一步

    result.then(r=>{console.log("r",r)})
    

    得到抛出结果
    在这里插入图片描述

    测试2

    function p1() {
        return new Promise((resolve, reject) => {
            resolve('p1')
        })
    }
    
    function p2() {
        return new Promise((resolve, reject) => {
            resolve('p2')
        })
    }
    function run() {
        return p1().then(d => {
             console.log('1,',d)
             return 1
        }).then(d => {
             console.log('2,',d)
             return p2().then(d => {
                 console.log('#t,',d)
                 throw(9)
             })
        }).then(d => {
              console.log('3,',d)
        }).catch(err=>{
             console.log('#err',err)
        })
    }
    

    run运行结果
    run运行结果
    运行到catch抛出异常

    let r = run()
    

    没有return了,r的promiseResult为undefined
    r没有下面的then了
    测试3
    把测试2 中的异常抛出关掉

    function p1() {
        return new Promise((resolve, reject) => {
            resolve('p1')
        })
    }
    
    function p2() {
        return new Promise((resolve, reject) => {
            resolve('p2')
        })
    }
    function run() {
        return p1().then(d => {
             console.log('1,',d)
             return 1
        }).then(d => {
             console.log('2,',d)
             return p2().then(d => {
                 console.log('#t,',d)
                 return d
             })
        }).then(d => {
              console.log('3,',d)
              return '最后一步中必须有return'
        }).catch(err=>{
             console.log('#err',err)
        })
    }
    

    运行结果
    在这里插入图片描述

    展开全文
  • //上源代码 const promise1 = new Promise((resolve, reject) => { console.log('promsie1') resolve('resolve1') }) const promise2 = promise1.then(res => { console.log(res) // return res
    //上源代码
    const promise1 = new Promise((resolve, reject) => {
                console.log('promsie1')
                resolve('resolve1')
            })
    
            const promise2 = promise1.then(res => {
                console.log(res)
                // return  res
            })
            console.log('1', promise1)
            console.log('2', promise2)
    

    打印结果

    promsie1
    1 Promise {<resolved>: "resolve1"}
    	__proto__: Promise
    	[[PromiseStatus]]: "resolved"
    	[[PromiseValue]]: "resolve1"
    2 Promise {<pending>}
    	__proto__: Promise
    	[[PromiseStatus]]: "resolved"
    	[[PromiseValue]]: undefined
    resolve1
    

    代码执行顺序,先顺序执行,promise2的then方法作为微任务在打印之后执行,但是在打印promise2时,此时的微任务还没有执行,所以promise2的状态是pending。then方法正常是接收参数,执行结束以后会返回一个新的 promise, then方法的return会在这个新的promise的内部被接收。如果这个then里面return的是一个new Promise,那么PromiseStatus就是new Promise的状态;如果return的不是new Promise,或者没有进行return的话,PromiseStatus就是resolved状态,因为非Promise类是不存在状态判定的,所以会自动转化为成功判定。所以promise2的 PromiseStatus : “resolved”。PromiseValue return出来的值是undefined。

    展开全文
  • 1. let a = new Promise((resolve,reject)=>... return 23 }) a; // promise <pending> 2. let a = new Promise((resolve,reject)=>{  Promise.reject(234) }) a; // promise <...

    1.

    let a = new Promise((resolve,reject)=>{

      return 23

    })

     

    a; // promise <pending>

     

    2.

    let a = new Promise((resolve,reject)=>{

      Promise.reject(234)

    })

    a; // promise <pending>

     

    3.

    let a = new Promise((resolve,reject)=>{

      return Promise.reject(12)

    }

    a; //promise <pending> 

     

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject

    转载于:https://www.cnblogs.com/eret9616/p/11546529.html

    展开全文
  • 如题,看一段代码 function promise() { let promise = new Promise((resolve, reject) =>... return promise; } function father(){ return promise().then(a=>{ return a*100; }) } console.log
  • Promise使用,return的运用,解决回调地狱 回调地狱 httpBookModel.getHotList().then((res) => { console.log(res) httpBookModel.getMyBookCount().then((res) => { console.log(res) httpBookModel....
  • 对返回值需要加一层promise封装 return Promise.resolve({ validateStatus: 'success', errorMsg: null, }); return Promise.resolve(); 参考自 https://www.asni.cn/2543
  • Promise

    万次阅读 2016-05-15 15:35:40
    讲述Promise之前,先向大家推荐一个不错的关于Promise的学习资料JavaScript Promise迷你书(中文版) var promise = new Promise(function(resolve, reject) { resolve("示例"); }); promise.then(function(value) ...
  • js方法写一个ajax请求,通过return一个Promise来接收data数据 function Ajax(type, url, boolean) { //type请求方式, url:请求路径, boolean:布尔值, true: 异步, false: 同步 return new Promise((resolve, ...
  • 最近在开发项目的时候。我在service中请求数据返回给控制器的时候,由于数据是异步请求的,这里需要知道javascript的运行环境是单...但就是这个异步的请求,导致我的data数据还没返回就已经return数据到控制层了,从
  • ES6 Promise用法小结

    万次阅读 多人点赞 2018-07-25 10:42:49
    1.什么是Promise reject的用法 catch的用法 all的用法 race的用法 1.什么是Promise Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch...
  • 更改后的代码如下(注:只能return一个promise,无法直接返回数据,因为直接return data是一个同步代码,但通过数据库获取数据肯定是一个异步过程,除非db.query像$.ajax一样提供同步功能从而阻塞页面才能直接...
  • Please return a promise instead. 原因 : 新版的antd使用了React的hooks,表单中的字段效验方法进行了一些修改。原来的回调方法改成返回一个Promise对象 原来的写法 const NameValidator = (rule, value, ...
  • 答案是,需要。 为了阻止后面的代码被执行,应当加上 return,或者直接使用: return resolve(...) 详细解释:https://stackoverflow.com/a/32536083/3054511
  • promise 递归

    2018-11-28 11:37:12
    let counter = 0; const max = 5; function promise () { ...return new Promise(resolve =&amp;gt; { if (counter &amp;gt;= max) { return resolve(“promise finish”); } else { set...
  • Promise入门

    千次阅读 2020-11-20 16:53:46
    Promise的基本使用,文章由浅入深详细的讲解了Promise,及其对应的API方法。
  • Promise扫盲贴

    2020-12-12 23:35:09
    then函数可以return另一个promise: const p1 = new Promise((resolve, reject) =>{ resolve('p1') }) const p2 = new Promise((resolve, reject) =>{ setTimeout(() =>{ resolve('p2') },3000) }) p1.then...
  • Promise源码解析

    千次阅读 2019-05-31 20:34:59
    Promise源码解析 纸上得来终觉浅,绝知此事要躬行。之前只是很浅显的知道Promise的用法,也大概猜测到它的内部是如何实现的。但是总是有一种不深究一下就不踏实的感觉。于是从npm上获得早期的Promise源代码,拿过来...
  • Promise-瀑布 Promise-waterfall 通过像这样的顺序流控制扩展了 promise 实用程序。 由于Promise.all(promiseArr) || Promise.spread(promiseArr)同时执行... // return a promise } , func2 = function ( res1 ) {
  • promise.all和promise.race的区别

    千次阅读 2020-01-16 20:00:40
    首先promise.all和promise.race 里面 都可以放一个 存储promise对象的数组 promise.all 是数组里面所有的 promise对象执行结束之后 会返回一个 存储所有 promise... return new Promise((resolve,reject)=>{ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,824
精华内容 49,929
关键字:

promisereturn