相关文章推荐
睡不着的抽屉  ·  JavaScript实战 - ...·  2 周前    · 
空虚的南瓜  ·  require statement not ...·  1 年前    · 
奋斗的山楂  ·  Day 015. 抓包神器 Burp ...·  1 年前    · 
温暖的芒果  ·  VB.NET代码转C#的方法 - ...·  1 年前    · 
耍酷的毛豆  ·  Scanner类详解 - igoodful ...·  2 年前    · 
// 定义一个变量直接a() 赋值给 b let b = this . a ( ) console . log ( b ) //这里就会返回 Promise {<pending>}

第一种方式 then 接收

let b = this . a ( ) . then ( res => { //.then是接收正确返回的信息 console . log ( res ) // {...} . catch ( err => { // .catch 返回报错信息 console . log ( err )

第二种方式 async await 接收:

async c ( ) { let b = await this . a ( ) console . log ( b ) // 现在就是正确返回了 {...}

这里要注意的是 async 和 await 必须是一起的

—————————————————————

小白上路,请多指教!!

Promise {&lt;pending}Promise {&lt;pending&gt;}首先你需要知道 promise 要用then接收或者async await例如:a() 是一个Promise封装的方法// 定义一个变量直接a() 赋值给 blet b = this.a()console.log(b) //这里就会返回 Promise {&lt;pending&gt;}第...
一、什么是 Promise Promise 是对象,代表了一个函数最终可能的返回值或抛出的异常,就是用来异步处理值的。 Promise 是一个构造函数,自己身上有all、reject、resolve这几个异步方式处理值的方法,原型上有then、catch等同样很眼熟的方法。 二、为什么使用 Promise 有了 Promise 对象,就可以把异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外, Promise 对象提供了统一的接口,使得控制异步操作更加容易。 Promise 对象有以下2个特点: 1.对象的状态不受外界影响。 Promise 对象代表一个异步操作,有三种状态:Pending(进行中
之前貌似很少写过 promise , async, await相关的内容。我大概知道await使用的时候,函数必须外边有async. 我今天写函数的时候,写了一个函数,然后调用的时候,发现返回的是 promise <pending>的状态。但是我在调用的函数里面打log, 是能打出来结果的,搜了很长时间才找到答案。最后也解决了。这里记录一下: var rs={score:0}; var g...
我们在使用函数的时候经常需要在函数的参数传入另外一个函数,一层一层传递,很容易造成回调地狱,这样的代码不利于维护; promise 是个构造函数对象,解决了回调问题,它有三种状态,pending(等待态),fulfiled(成功态),rejected(失败态),常用到的方法则有 then,catch,all,race promise 是用来解决两个问题的: 回调地狱,代码难以维护, 常常第一个的函数的输出是第二个函数的输入这种现象 promise 可以支持多个并发的请求,获取并发请求中的数据 这个 promise 可以解决异步的问题,本身不能说 promise 是异步的 Promise 的构造函数接收一个参数
JavaScript是一门典型的异步编程脚本语言,在编程过程中会大量的出现异步代码的编写,在JS的整个发展历程中对异步编程的处理方式经历了很多个时代,最典型也是现今使用最广泛的时代就是 Promise 对象处理异步编程。那么什么是 Promise 对象呢? Promise 是ES6版本提案中实现的异步处理方式,对象代表了未来将要发生的事件,用来传递异步操作的消息。 为什么使用 Promise 对象 举个栗子: 在过去的编程中JavaScript的主要异步处理方式是采用回调函数的方式来进行处理的所以如果想要
Promise 执行机制——共有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) & 宏任务(主线) 微任务(穿插) 深入探讨 Promise 之前,有个概念先交代一下,有助于对后文进行了解。 通常,我们把消息队列中的任务成为宏任务,而每一个宏任务中都包含了一个微任务队列。等到当前宏任务中的主要任务执行完成了以后,渲染引擎其实并不着急执行下一个宏任务,而是先去执行当前宏任务中的微任务。 只是引入了概念,我想大家会跟我有同样的疑惑,平常大部分的开发中
let uploadData={ type :formData.award_type, count :formData.award_send_info_11 || formData.award_send_info_23 import promise PendingLock from ' promise -pending-lock' ; function task ( ) { return Promise . resolve ( { } ) ; const fn = promise PendingLock ( task ) ; Promise . all ( [ fn ( ) , fn ( ) ] ) . then ( ( [ r1 , r2 ] ) => { console . log ( r1 === r2 ) ; // true } ) ; 注意:如果task函数具有params,则应提供hashParams函数,以将p
本文实例讲述了JS手写一个自定义 Promise 操作。分享给大家供大家参考,具体如下: 经常在面试题中会看到,让你实现一个Promsie,或者问你实现 Promise 的原理,所以今天就尝试利用class类的形式来实现一个 Promise 为了不与原生的 Promise 命名冲突,这里就简单命名为My Promise . class My Promise { constructor(executor) { let _this = this this.state = 'pending' // 当前状态 this.value = undefined // 存储成功的值 this.reason =
拒绝了(rejected) 这个承诺一旦从等待状态变成为其他状态就永远不能更改状态了,也就是说一旦状态变为 resolved 后,就不能再次改变 new Promise ((resolve, reject) => { resolve('success') reject('reject') // 无效 当我们在构造 Promise 的时候,构造函数内部的代码是立即执行的 new Promise ((resolve, reje
本文实例讲述了ES6基础之 Promise 对象用法。分享给大家供大家参考,具体如下: Promise 对象 1. Promise 对象是ES6对异步编程的一种解决方案,它有以下两个特点: Promise 对象代表一个异步操作,它只有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败),并且该状态不会受外界的影响 Promise 对象的状态改变,只有两种可能:从 Pending 变为 Resolved 或者从 Pending 变为 Rejected,并且一旦状态改变,就不会再变,任何时候都可以得到这个结果 2. Promise 对象的
Promise 对象有三种状态: Pending – Promise 对象的初始状态,等到任务的完成或者被拒绝;Resolved – 任务执行完成并且成功的状态;Rejected – 任务执行完成并且失败的状态; Promise 的状态只可能从Pending状态转到Resolved状态或者Rejected状态,而且不能逆向转换,同时Resolved状态和Rejected状态也不能相互转换; Promise 对象必须实现then方法,then是 promise 规范的核心,而且then方法也必须返回一个 Promise 对象,同一个 Promise 对象可以注册多个then方法,并且回调的执行顺序跟它们的注册顺序一致; then方法接受两个回调函数,它们分别为:成功时的回调和失败时的回调;并且它们分别在: Promise 由Pending状态转换到Resolved状态时被调用和在 Promise 由Pending状态转换到Rejected状态时被调用。
一种很常见的场景应该就是网络请求 我们封装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4=7一样将结果返回 所以往往我们会传入另一个函数,在数据请求成功时,将数据通过传入的函数回调出去 如果只是一个简单的网络请求,那么这种方案不会给我们带来很大的麻烦 但是,当网络请求非常复
自己一直想要用node操作db.count()去获取某个表的长度,奈何用collection.find().count()却又一直获取不到,查看了许多文章,都没有什么详细的解释,官方文档也是吧啦吧啦一大堆。。。 collection.find().count()获取的一直为 Promise { <pending> },需要用 Promise 去解决,博客中也进行了详细解释。最后自己也认真的看了看count(),简单的总结了一下。