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

如何将promise结果传递给外部函数?

将promise结果传递给外部函数可以通过以下几种方式实现:

  1. 使用.then()方法:在外部函数中,可以通过调用promise对象的.then()方法来获取promise的结果。.then()方法接受两个参数,第一个参数是成功回调函数,第二个参数是失败回调函数。成功回调函数会在promise成功执行后被调用,并且接收promise的结果作为参数。例如:
代码语言:txt
复制
function externalFunction() {
  return new Promise((resolve, reject) => {
    // 执行异步操作
    // 异步操作成功时调用resolve(),并传递结果
    // 异步操作失败时调用reject(),并传递错误信息
  });
}

externalFunction().then(result => {
  // 外部函数中获取到promise的结果
  console.log(result);
}).catch(error => {
  // 外部函数中获取到promise的错误信息
  console.error(error);
});
  1. 使用async/await:如果外部函数是一个async函数,可以使用await关键字来等待promise的结果。await关键字只能在async函数内部使用。例如:
代码语言:txt
复制
async function externalFunction() {
  try {
    const result = await new Promise((resolve, reject) => {
      // 执行异步操作
      // 异步操作成功时调用resolve(),并传递结果
      // 异步操作失败时调用reject(),并传递错误信息
    });
    // 外部函数中获取到promise的结果
    console.log(result);
  } catch (error) {
    // 外部函数中获取到promise的错误信息
    console.error(error);
  }
}

externalFunction();

这两种方式都可以将promise的结果传递给外部函数,并在外部函数中进行处理。具体使用哪种方式取决于你的需求和代码结构。

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

相关·内容

Vue 中,如何将函数作为 props 传递给组件

但是你能把一个函数当作一个props来传递吗? 虽然可以将函数作为props传递,但这种方式不好。相反,Vue 有一个专门为解决这问题而设计的功能,接下来,我们来看看。...向组件传入函数 获取一个函数或方法并将其作为一个prop传递给子组件相对比较简单。...React vs Vue 如果使用过 React,就会习惯传递函数方式。 在React中,我们可以将一个函数从父组件传递给子组件,以便子组件能够向上与父组件通信。...然后,当需要时,子组件不会调用该函数,而只是发出一个事件。然后父组件将接收该事件,调用该函数,拼装将更新传递给子组件的 prop。 这是达到同样效果的更好的方法。...在其他情况下,我们可能想要从子元素中获取一个值到父元素中,我们为此使用了函数。 例如,你可能正在这样做。父函数接受子函数的值并对其进行处理: <!

7.6K20

ES6中的Promise和Generator详解

如果不设置回调函数Promise内部抛出的错误,不会反应到外部。 当处于Pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。...,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。...那个率先改变的 Promise 实例的返回值,就传递给p的回调函数. Promise.resolve() Promise.resolve()将现有对象转为Promise对象....但是我们如何将这个yield传给result变量呢?要记住yield本身是没有返回值的。 我们需要调用generator的next方法,将异步执行的结果进去。...“值调用”(call by value),即在进入函数体之前,就计算x + 5的值(等于6),再将这个值传入函数f。C语言就采用这种策略。

1.2K21

Vue 进阶必学之高阶组件 HOC

promiseFunc 也就是请求对应的函数,需要返回一个 Promise 看起来不错了,但是函数里我们好像不能像在 .vue 单文件里去书写 template 那样书写模板了, 但是我们又知道模板最终还是被编译成组件对象上的...外部组件传递给 hoc 组件的参数现在没有透传下去。 第一点很好理解,我们请求的场景的参数是很灵活的。 第二点也是实际场景中常见的一个需求。...$refs.wrapped; // 传递给请求函数 const result = await promiseFn(requestParams).finally(() =>...,我们只要在渲染子组件的时候把 attrs、listeners、 此处的 attrs 就是外部模板上声明的属性,listeners 就是外部模板上声明的监听函数, 以这个例子来说: <my-input...,因为仔细观察这个 compose,它会包装函数,让它接受一个参数,并且把第一个函数的返回值 传递给下一个函数作为参数。

28610

怎么写一个JavaScript Promise

我们传入一个带有两个参数的函数,其参数为resolve和reject,而不是像传递给我们Car的三个参数(颜色,类型和门)。...旁注,我们可以从任何函数返回promise。他不必是异步的。话虽这么说,promise通常在它们返回的函数是异步的情况下返回。...我们打印出延迟时间和温度,以便我们知道这个功能需多长时间以及我们期望在完成时看到的结果。 运行函数并打印结果。...而且,即使我们可以保证最大延迟10秒,如果result出结果了,我们也是在浪费时间。 promise来拯救 我们将重构getTemperature()函数以返回promise。而不是设置结果。....catch,当我们的promise拒绝时,它将被调用,并返回我们传递给reject的任何信息。 最有可能的是,你将更多的使用promise,而不是创建它们。

37130

【译】怎么写一个JavaScript Promise

我们传入一个带有两个参数的函数,其参数为resolve和reject,而不是像传递给我们Car的三个参数(颜色,类型和门)。...旁注,我们可以从任何函数返回promise。他不必是异步的。话虽这么说,promise通常在它们返回的函数是异步的情况下返回。...我们打印出延迟时间和温度,以便我们知道这个功能需多长时间以及我们期望在完成时看到的结果。 运行函数并打印结果。...而且,即使我们可以保证最大延迟10秒,如果result出结果了,我们也是在浪费时间。 promise来拯救 我们将重构getTemperature()函数以返回promise。而不是设置结果。....catch,当我们的promise拒绝时,它将被调用,并返回我们传递给reject的任何信息。 最有可能的是,你将更多的使用promise,而不是创建它们。

70820

模拟实现 Promise(小白版)

,同时异步执行结果会通过参数传递给回调函数 使用示例 var p = new Promise((resolve, reject) => { // do something async job...,如果中间某个 then 传入的回调处理不能友好的处理回调工作(比如传递给 then 非函数类型参数),那么这个工作会继续往下传递给下个 then 注册的回调函数 Promise 有一个 catch 方法...,则将上个Promise结果递给下个处理 resolve(this....的主要功能职责,所以我的实现版并没有按照规范一步步来,细节上,或者某些特殊场景的处理,可能欠缺考虑 比如对各个函数参数类型的校验处理,因为 Promise 的参数基本都是函数类型,但即使其他类型,也仍旧不影响...,则将上个Promise结果递给下个处理 resolve(this.

1.4K20

Vue 进阶必学之高阶组件 HOC(保姆式教学,冲击20k必备)

promiseFunc 也就是请求对应的函数,需要返回一个 Promise 看起来不错了,但是函数里我们好像不能像在 .vue 单文件里去书写 template 那样书写模板了, 但是我们又知道模板最终还是被编译成组件对象上的...外部组件传递给 hoc 组件的参数现在没有透传下去。 第一点很好理解,我们请求的场景的参数是很灵活的。 第二点也是实际场景中常见的一个需求。...$refs.wrapped; // 传递给请求函数 const result = await promiseFn(requestParams).finally(() =>...,$listeners 就是外部模板上声明的监听函数, 以这个例子来说: 复制代码 组件内部就能拿到这样的结构:...,因为仔细观察这个 compose,它会包装函数,让它接受一个参数,并且把第一个函数的返回值 传递给下一个函数作为参数。

5.1K71

深入理解JS的事件循环

成功resolve的结果successVal,传递给第一个方法onResolved(),然后执行onResolved(this.successVal)函数 当status为'reject'时,过程一直,...,我then方法内的第一个参数,也就是onResolved()函数函数内部的返回值应该是要能够传递给下面接着进行链式调用的then方法的,如下所示: new Promise((resolve,reject...,也就是函数的返回值 然后,将返回值传递给新的用来返回的promise的resolve(),就可以将返回值保存到新的promise的successVal 执行出错的话,当然要将错误传递给新的用来返回的promise...外部函数可以通过next方法恢复生成器函数的执行。...1. async是什么: ★MDN:async是一个通过异步执行并隐式返回Promise作为结果函数

4K60

【JavaScript】手写Promise

,将 resolve 和 reject 传递给它 callback(resolve, reject); }}二、then方法接下来定义Promsie类中then函数。...如果原始 Promise 对象的状态为 fulfilled,那么我们就可以直接执行成功回调函数,并将成功状态的值作为参数传递给它。...如果原始 Promise 对象的状态为 rejected,那么我们就可以直接执行失败回调函数,并将失败原因作为参数传递给它。...但是,如果原始 Promise 对象的状态为 pending,那么我们就需要等待原始 Promise 对象的状态发生变化,再执行相应的操作。2. 当then函数的参数不是函数怎么办?...为了避免then函数的参数不是函数,需要对上面代码稍微优化一下 then(onResolved, onRejected) { onResolved = typeof onResolved

16940

(建议收藏)关于JS事件循环, 这一篇就够啦

成功resolve的结果successVal,传递给第一个方法onResolved(),然后执行onResolved(this.successVal)函数 当status为'reject'时,过程一致,...,我then方法内的第一个参数,也就是onResolved()函数函数内部的返回值应该是要能够传递给下面接着进行链式调用的then方法的,如下所示: new Promise((resolve,reject...,也就是函数的返回值 然后,将返回值传递给新的用来返回的promise的resolve(),就可以将返回值保存到新的promise的successVal 执行出错的话,当然要将错误传递给新的用来返回的promise...外部函数可以通过next方法恢复生成器函数的执行。...1. async是什么: MDN:async是一个通过异步执行并隐式返回Promise作为结果函数

1.5K31

Promise 源码分析

(a,2)}) //在浏览器console执行的结果: 1 1 undefined 2 //promise库执行的结果: 1 1 1 2            ...显然,浏览器自己实现的 promise外部promise库的实现方案还是有细微差别的。...promise构造函数的参数resolver,即是你自己的逻辑过程函数,该函数有两个参数,这两个参数会promise静态函数resolve和reject,你自己的逻辑过程函数逻辑(无论异步还是同步)...那就不执行函数,把你传入的值当作当前promise fullfill状态的结果值,resolve一下。 是函数、没有返回值。执行函数promise当前值不变,resolve一下。 是函数、有返回值。...执行函数,给返回的proimse对象简单的then一下,这个then就是透当前promise的值。             then里面有递归,还不同于一般的递归,不是可以很直观理解。

1.8K50

Node理论笔记:异步编程

和Deferred的区别,Deferred主要用于内部,用于维护异步模型的状态;Promise则作用于外部,通过then()方法暴露给外部以添加自定义逻辑。...首先,无法取消Promise,一旦新建它就会立即执行,无法中途取消。其次,如果不设置回调函数Promise内部抛出的错误,不会反应到外部。...resolve()函数的作用用于将Promise从pending的状态变为fulfilled,异步操作成功时调用该方法,并将成功结果传出去。...也就是说,可以在 Generator 函数运行的不同阶段,从外部向内部注入不同的值,从而调整函数行为。.../file/test2.txt"); } Generator函数yield表达式的返回值是下一次调用next()方法的参,而readFile又是异步函数,所以想实现串行执行,最终调用next()时还是需要回调嵌套

94920

React 中必会的 10 个概念

介绍了基本语法,让我们了解如何将箭头函数与 React 一起使用。除了如上所述定义 React 组件之外,箭头函数在操作数组以及使用异步回调和 Promise 时也非常有用。...在 JavaScript 中,它们是使用异步代码的许多方法(回调,Promise,诸如 bluebird 和 deferred.js 等外部库)。...异步用于定义异步函数,该函数返回隐式 Promise 作为其结果。 ? 请注意,使用异步函数的代码的语法和结构看起来像常规同步函数。 关键字 await仅在异步函数中起作用。...它使程序等待,直到 Promise 成功并返回其结果。这是一个 Promise 在几秒钟后 resolve 的示例: ?...实际上,如果一个 Promise 能够正常 resolve,它就会返回结果。但是,如果 reject,则会引发错误。

6.6K30

打开Promise的正确姿势

并将Promise实例数组的所有返回值组成一个数组,传递给Promise.all返回实例的回调函数。...并将第一个rejected的实例返回值传递给Promise.all返回实例的回调函数Promise.race方法跟Promise.all方法差不多。...) 我们会在异步操作成功时调用resolve函数,其作用是将Promise对象的状态从Pending变为Resolved,并将异步操作的结果,作为参数传递给Pending状态的回调函数。...res(err) }) } 7.Promise状态透 在看上一节内容的时候你可能会有疑问,为什么之前没有设置回调函数对rejected状态进行处理,后面可以使用catch直接捕获之前的结果呢?...这就是Promise的状态透特点,如果当前的promise实例没有绑定回调函数,或者绑定的不是函数,那么当前实例就会把其状态以及不可变值或者不可变原因传递给当前实例调用.then方法返回的新promise

77110

初识Promise

什么是promise?MDN官方文档的解释如下: Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示。...在这段代码中,Promise的参数是一个函数,这个函数有两个参数,resolve,reject,按照官方文档的说法,Promise 对象用于表示一个异步操作的最终完成(或失败)及其结果的值。...通俗的讲就是控制异步函数的调用。 上面的代码还不足以看出Promise的威力,只是告诉大家如何将Promise放到一个函数里面。...是否结婚存在一个概率问题,这里用Math.random来计算: 如果嫁给我,将结果递给resolve,将Promise由pedding状态变换为fullfiled状态,后面紧跟的then方法中的function...会得到传递出过来的数据,并且then链调用会同步一个一个逐步执行; 如果不结婚,将结果递给reject,后面的then一个都不会执行,直接跳到catch里面来执行。

51820

JavaScript 异步编程指南 — Give me a Promise

eventual value:代表终值,这是 Promise 被解决时传递给解决回调的值,例如 resolve(value) 这时 Promise 状态就会结束进入 fulfill。...reason:拒因,指 Promise 在被拒绝时传递给拒绝回调的值,例如 reject(reason) 这时 Promise 状态结束进入 reject。...笔者之前也曾写过一篇解析 “Node.js 源码解析 util.promisify 如何将 Callback 转为 Promise” const { promisify } = require('util...,执行过程中一旦其中某个 Promise 实例发生 reject 就会触发 Promise.all() 的 catch() 函数。...我们也无法从外部取消。如果 then 后面还有业务需要处理,也将会一直等待下去,当我们自己去包装一个 Promise 对象时要尽可能的避免这种情况发生。

1.1K10
领券