首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将get_p返回的promise赋给变量?

将get_p返回的promise赋给变量的方法是使用async/await或者.then()方法。

使用async/await:

代码语言:txt
复制
async function example() {
  const result = await get_p();
  // 在这里可以使用result变量
}

example();

使用.then()方法:

代码语言:txt
复制
get_p().then(result => {
  // 在这里可以使用result变量
});

在上述代码中,get_p()是一个返回promise的函数。使用async/await关键字可以将异步操作转换为同步的写法,通过await关键字可以等待promise的解决,并将解决的结果赋给变量result。在.then()方法中,可以通过回调函数获取promise的解决结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python笔记39-unittest框架如何将上个接口的返回结果给下个接口适用(面试必问)

前言 面试必问:如何将上个接口的返回结果,作为下个接口的请求入参?使用unittest框架写用例时,如何将用例a的结果,给用例b使用。...unittest框架的每个用例都是独立的,测试数据共享的话,需设置全局变量,可以使用globals()函数来解决 globals()函数 globals() 函数会以字典类型返回当前位置的全部全局变量。...'''用例b''' b = globals()["a"] # 引用用例a的返回值 print("用例b引用用例a的返回值:%s"%b) result_b = b+"111" self.assertEqual...,可以把globals()函数放到setUp前置里面,如下: 用例c需要依赖a的返回值result_a和用例b的返回值result_b import unittest import requestsclass...'用例b''' b = self.g["a"] # 引用用例a的返回值 print("用例b引用用例a的返回值:%s"%b) result_b = b+"111" self.g["b"] = result_b

1.5K30
  • 手写async await的最简实现(20行)

    , asyncToGenerator接受一个generator函数,返回一个promise, 关键就在于,里面用yield来划分的异步流程,应该如何自动执行。...= gen.next() 复制代码 这里返回了一个promise,就是第一次getData()所返回的promise,注意 const data = yield getData() 复制代码 这段代码要切割成左右两部分来看...下一次调用next的时候,传的参数会被作为上一个yield前面接受的值 也就是说,我们再次调用gen.next('这个参数才会被赋给data变量')的时候 data的值才会被确定为'这个参数才会被赋给data...变量' gen.next('这个参数才会被赋给data变量') // 然后这里的data才有值 const data = yield getData() // 然后打印出data console.log...promise 因为外部是用.then的方式 或者await的方式去使用这个函数的返回值的 // var test = asyncToGenerator(testG) // test()

    1.5K20

    JavaScript ES2021最值得期待的新特性解析

    ES2021 将引入 Promise.any() 方法,只要这个方法命中了 Promise 列表 / 数组中的第一个已解析的 Promise,就会短路并返回一个值(如示例 1a 中所述)。...示例 1a:即使一个 Promise 在一个已解析的 Promise 之前被拒绝,Promise.any() 仍将返回第一个已解析的 Promise。...运算符的一些示例: 带有 && 运算符的逻辑赋值运算符 仅当 LHS 值为真时,才将 RHS 变量值赋给 LHS 变量。...仅当 LHS 值为假时,才将 RHS 变量值赋给 LHS 变量。...运算符的逻辑赋值运算符 ES2020 引入了空值合并运算符,其也可以与赋值运算符结合使用。仅当 LHS 为 undefined 或仅为 null 时,才将 RHS 变量值赋给 LHS 变量。

    79710

    JavaScript ES2021 最值得期待的 5 个新特性解析

    (); 2.2 Promise.any Promise.any 方法和 Promise.race 类似——只要给定的迭代中的一个 promise 成功,就采用第一个 promise 的值作为它的返回值...,但与 Promise.race 的不同之处在于——它会等到所有 promise 都失败之后,才返回失败的值: const promises = [ fetch('/endpoint-a').then...(a = b); // Only assigns if a is nullish 5.1 具体例子 带有 && 运算符的逻辑赋值运算符 仅当 LHS 值为真时,才将 RHS 变量值赋给 LHS 变量。...仅当 LHS 值为假时,才将 RHS 变量值赋给 LHS 变量。...运算符的逻辑赋值运算符 ES2020 引入了空值合并运算符,其也可以与赋值运算符结合使用。仅当 LHS 为 undefined 或仅为 null 时,才将 RHS 变量值赋给 LHS 变量。

    65010

    现代JavaScript—ES6+中的Imports,Exports,Let,Const和Promise

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。...变量赋了一个新值,但是并没有重新声明。...而let声明的变量,可以为其赋一个新值,如下所示: let number = 10; number = 20; console.log(number); // 20 但是以下情况,我们不能这样使用const...如上图所示,我们在第一个then方法中输出字符串,并将接收的参数result(sum)返回给下一个result。 在下一个then方法中,输出字符串,并输出上一个then方法传递给它的result。...我们可以将promise封装在一个函数中,然后从函数中返回promise,如下所示: function createPromise() { return new Promise(function(resolve

    3.3K10

    一比一还原axios源码(七)—— 取消功能

    然后通过 resolvePromise变量保存一个promise的resolve方法。...下面呢,重点来了,把CancelToken的实例也就是this,赋值给token变量,然后: this.promise.then(function (cancel) { if (!...,让this也就是token,记得之前最开始的地方,把this赋给了token,这里的token就是cancelToken的实例,执行订阅的subscribe方法,订阅这个resolve,然后,在resolve...再然后,咱们回到xhr文件中,添加些相关代码: 给实例this绑定一个真正的promise对象,把这个对象的resolve执行函数存储给resolvePromise变量,以便在恰当的时候调用。...自定义一个then方法,这个方法返回一个promise,并把这个promise的resolve状态订阅到listener中,并在promise上添加一个cancel取消订阅的方法。

    39630

    如何优雅的不用try-catch捕获await的错误

    在日常开发中,通常我们会用 promise 的形式来进行一些异步的操作,但是为了更方便,我们也会较多的使用语法糖 async await 的形式,但是这两者有个区别,promise 可以使用 .catch...().catch((err) => { // 处理 err 的逻辑 console.log("err", err) }) })() 这样有错误的话就处理,没有错误的话就返回了对应的数据...,但是每个方法要搞这么一手,也挺麻烦的,而且最重要的错误信息没有同步的返回,需要在每个代码逻辑里面都进行处理 针对上面的问题,我们再优化一下,把错误信息也同步的返回,这里使用数组的形式去接受数据,一个是异步错误信息...=> [err, undefined]) })() 这样我们就可以通过 err 以及 data 变量获取到我们想要的信息,那如何将这个方法进一步的封装呢?...和 errorExt 的参数,如果 promise 成功返回 [null, data],如果有异常,则看是否有添加的异常信息,如果有则进行 err 的合并返回 [err, undefined] 使用的话也非常简单

    40610

    util.promisify 的那些事儿

    有关,因为Promise是可以链式调用的,每个Promise中执行then以后都会将其返回值作为一个新的Promise对象resolve的值,在JavaScript中并没有办法return多个参数,所以即便第一个...而且可以验证,赋值给custom的函数与promisify返回的函数地址是一处: obj.getData[promisify.custom] = async () => ({ name: 'Niko...修复这样的问题有两种途径: 使用箭头函数,也是推荐的做法 在调用promisify之前使用bind绑定对应的this 不过这样的问题也是建立在promisify转换后的函数被赋值给其他变量的情况下会发生..., this.name) } } // 这样的操作是不需要担心 this 指向问题的 obj.XXX = promisify(obj.getName) // 如果赋值给了其他变量,那么这里就需要注意...this 的指向了 const func = promisify(obj.getName) // 错误的 this 小结 个人认为Promise作为当代javaScript异步编程中最核心的一部分,了解如何将老旧代码转换为

    88320

    ECMAScript 2021(ES12)新特性简介

    = new Student(); student.getAge(); 上面代码运行结果: "永远18岁" 但是如果我们不希望getAge()方法直接暴露给外部使用,也就是说希望getAge()是一个私有方法...同样,可以在属性名前面加上#,让其变成私有变量,如下所示: class Student { get #Age() { return 18; } } student= new Student...Promise.any() 和 AggregateError promise.any可以返回任意一个提前resolve的结果,在现实的应用中,这种情况是非常常见的,我们来模拟一个例子: const prom1...was resolved 注意,必须是所有的promise都被reject之后才会抛出AggregateError,如果有部分成功,那么将会返回成功的结果。...的二元操作符,如: var x; var y = 2; x ??= y; 上面代码的意思是,判断x是不是空,如果是空那么将y的值赋给x。 总结 ES12的几个新特性还是挺实用的,大家可以尝试一下。

    81210

    手写Promise完整介绍

    其中,resolve方法返回一个已经成功的Promise对象;reject方法返回一个已经失败的Promise对象;all方法接收一个包含多个Promise对象的数组,并在所有Promise对象都成功时返回一个包含所有结果的新...如果是,那么将状态改为FULFILLED并将返回值赋给value属性,并依次调用成功回调数组中的回调函数。在reject函数中,同样首先判断promise的当前状态是否为PENDING。...如果是,那么将状态改为REJECTED并将错误原因赋给reason属性,并依次调用失败回调数组中的回调函数。在构造函数的末尾,通过try-catch语句执行executor函数。...如果执行过程中有错误抛出,那么调用reject函数将错误原因赋给reason属性。resolve和reject接下来是resolve和reject方法的实现。...当任何一个promise成功时,返回该成功的promise的值;否则,返回第一个失败的promise的错误原因的新的MyPromise实例。

    43030

    ECMAScript 2021(ES12)新特性简介

    = new Student(); student.getAge(); 上面代码运行结果: "永远18岁" 但是如果我们不希望getAge()方法直接暴露给外部使用,也就是说希望getAge()是一个私有方法...同样,可以在属性名前面加上#,让其变成私有变量,如下所示: class Student { get #Age() { return 18; } } student= new Student...Promise.any() 和 AggregateError promise.any可以返回任意一个提前resolve的结果,在现实的应用中,这种情况是非常常见的,我们来模拟一个例子: const prom1...was resolved 注意,必须是所有的promise都被reject之后才会抛出AggregateError,如果有部分成功,那么将会返回成功的结果。...的二元操作符,如: var x; var y = 2; x ??= y; 上面代码的意思是,判断x是不是空,如果是空那么将y的值赋给x。

    34920

    函数式编程中的数组问题

    学校编程课本上教的变量声明语句,循环语句,条件判断语句,枚举语句,这些都是语句,也就是说我们再熟悉不过的if/else语句,for/while循环,switch以及try/catch都不给用了!...我当时也有一种“这些年编程白学了”的冲动,虽然官方说每一种语句都可以用对应的表达式来替代,比如在JavaScript领域,变量声明省略掉关键词后就变成了表达式: 变量声明语句 // 变量声明语句+赋值...let test = 123; // 变量申明+赋值表达式 test = 123; 因为变量总是属于当前函数的变量对象(variable object),声明变量等同于给对象添加属性,所以变量申明表达式返回赋的值或者...首先模拟一个tasks列表,其中每个元素都是async函数,即返回promise的函数: tasks = [2000, 1000, 3000].map(time => async () => {...注意,在async函数中即使return了一个promise.resolve(123),函数返回值将是另一个promise,只是解析值都是123。

    2K20

    Node+Vue 实现大文件上传,断点续传等

    服务器端 如何将这些切片, 合交成一个, 并且能显示原来的图片 stream 流 可读流, 可写流 chunk 都是一个二进制流文件, Promise.all 来包装每个chunk 的写入 start...Web Workers  优化我们的前端性能, 将要花大量时间的, 复杂的,放到一个新的线程中去计算 文件上传通过hash 计算, 文件没有问题 es6 哪些特性, 你怎么用的 函数参数赋默认值 给用户快速感知...随后调用uploadChunks上传所有的文件切片,将文件切片,切片hash,以及文件名放入 formData中,再调用上一步的request函数返回一个promise,最后调用Promise.all...,通知前端进行上传,并把已上传的文件切片返回给前端 服务端验证接口 // 返回已经上传切片名列表 const createUploadedList = async fileHash => fse.existsSync...Q: 处理暂停恢复后,进度条后退的问题 定义临时变量fakeUploadProgress在每次暂停时存储当前的进度,在上传恢复后, 当当前进度大于fakeUploadProgress的进度,再进行赋值即可

    2.8K40

    从Generator入手读懂 co 模块源码(干货)

    需要注意的是,整个迭代器目前暂停在了第一个yield这里,给变量a赋值都没执行,要调用下一个next的时候才会给变量a赋值,然后一直执行到第二个yield。那应该给a赋什么值呢?...的返回值赋给a: ?...Generator,返回值是一个Promise,几乎所有逻辑代码都在这个 Promise里面,这也是我们使用时用then拿结果的原因。...这次执行的时候传入的参数res是上次异步promise的执行结果,对应我们的fetch就是拿回来的数据,这个数据传给第二个gen.next,效果就是我们代码里面的赋值给了第一个yield前面的变量r1。...promise sendRequest().then((res) => { console.log('res', res); }); 咋一看这个跟前面promise版的co是不是很像,返回值都是一个

    66530
    领券