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

如何在angular 2中仅当模型窗口返回promise时解析函数?

在Angular 2中,可以使用async/await来解决当模态窗口返回Promise时的解析函数问题。

首先,确保你的模态窗口返回的是一个Promise对象。这个Promise对象可以在模态窗口关闭时进行resolve或reject操作。

接下来,在调用模态窗口的地方,使用async关键字将函数标记为异步函数。然后,在调用模态窗口的地方使用await关键字等待Promise对象的解析。

下面是一个示例代码:

代码语言:txt
复制
async openModal() {
  const result = await this.modalService.open().toPromise();
  // 在这里可以使用result进行后续操作
}

在上面的代码中,openModal函数使用了async关键字来标记为异步函数。在调用模态窗口的地方,使用await关键字等待Promise对象的解析。一旦Promise对象解析完成,将返回结果赋值给result变量,然后可以在函数中使用result进行后续操作。

需要注意的是,使用async/await需要在函数所在的类中引入rxjs库中的toPromise方法,以将Observable转换为Promise对象。可以通过以下方式引入:

代码语言:txt
复制
import { toPromise } from 'rxjs/operators';

这样,你就可以在Angular 2中仅当模态窗口返回Promise时解析函数了。

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

相关·内容

何在 ASP.NET MVC 中集成 AngularJS(2)

配置包文件,你需要考虑一个捆绑策略以及如何组织你的包文件。下面的 BundleConfig 类是内置的 ASP.NET 捆绑功能的配置文件。...这两个都将被之后 HTML 中的 Razor 视图引擎所解析。 下面的代码段,产生了我想根据需求动态加载的一些包,我不想当应用启动加载所有的前期的包。...这个提供商将会在构造函数中被配置,来设定用于动态请求的应用所需的程序集版本号和捆绑列表。MVC Razor 代码在构造函数中会注入服务器端的数据。...捆绑信息将会被解析为 JSON 集。捆绑信息集将会用于返回虚拟的捆绑路径。此外,JSON 集将被用于跟踪被加载的捆绑。一旦捆绑被加载,就不需要第二次捆绑了。 有几件事情需要写入路由代码中。...确定需要下载哪些模式的捆绑,有两件事情需要去加载捆绑:deferred promise 和 RequireJS。deferred promise 可以帮助你异步运行函数它完成执行,就会返回

8.3K100

Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

Angular提供了一组生命周期hooks(特殊事件),可以被分接到生命周期中,并在需要执行操作。构造函数会在所有生命周期事件之前执行。每个接口都有一个前缀为ng的hook方法。...ngOnChanges:Angular设置其接收当前和上一个对象值的数据绑定属性响应。 ngOnInit:在第一个ngOnChange触发器之后,初始化组件/指令。...它是如何在Angular 2中工作的? Angular 2不具有双向digest cycle,这是与Angular 1不同的。...这通常用在setter中,类中的值被更改完成。 可以通过模块的任何一个组件,使用订阅方法来实现事件发射的订阅。...从堆栈溢出就是一个区别:  异步操作完成或失败Promise会处理一个单个事件。 Observable类似于(在许多语言中的)Stream,每个事件调用回调函数,允许传递零个或多个事件。

17.3K80
  • 2018年前端面试总结

    而 async 函数的 await命令后面则可以是 Promise 或者 原始类型的值(Number,string,boolean,但这时等同于同步操作); 返回值是 Promise。...async 函数返回值是 Promise 对象,比 Generator 函数返回的 Iterator对象方便,可以直接使用 then() 方法进行调用。...css计算文件hash等 配置devtool 选择合适的loader,个别loader开启cache babel-loader 第三方库采用引入方式 提取公共代码 优化构建的搜索路径 指明需要构建目录及不需要构建目录...某种资源需要用这个loader转换,这个函数会被调用。并且,这个函数可以通过提供给它的this上下文访问Loader API。...async/await是基于Promise实现的,它不能用于普通的回调函数。async/await与Promise一样,是非阻塞的。

    72520

    Angular2 之 单元测试

    通过将测试代码放到特殊的异步测试区域来运行,async函数简化了异步测试程序的代码。 接受无参数的函数方法,返回无参数的函数方法,变成Jasmine的it函数的参数。...ComponentFixture.whenStable方法返回它自己的承诺,它getQuote 承诺完成解析。...实际上,“stable”的意思是所有待处理异步行为完成的状态,在“stable”后whenStable承诺被解析。...fakeAsync fakeAsync是另一种Angular测试工具。 和async一样,它也接受无参数函数返回一个函数,变成Jasmine的it 函数的参数。...---- 多次调用同一个异步方法 相信大家对这段单元测试的代码很熟悉,这里就是模拟多次调用同一个方法返回不同的值。 这里是同步方法的模拟返回数据,那么异步方法同样可以。

    5.5K20

    【Hybrid开发高级系列】AngularJS(二)——常用$服务

    $http服务是一个接受一个参数的函数,参数的类型是对象,用来配置生成的http的请求,该函数返回一个promise对象(关于promise规范,可以看看这篇文章) var promise = $http...这个函数返回一个promise对象,具有success和error两个方法。...http方法返回一个promise对象,我们可以在响应返回用then方法来处理回调。...path( ):读、写;没有任何参数返回当前url的路径;带有参数,改变路径,并返回$location。...search( ):读、写;不带参数调用的时候,以对象形式返回当前url的搜索部分。     url( ):读、写;不带参数返回url;带有参数返回$location。

    42140

    进阶 | 重新认识Angular

    首先我们使用一个内建DSL来解析模板字符串并输出AST。 结合特定的数据模型(在regularjs中,是一个裸数据), 模板引擎层级游历AST并递归生成Dom节点(不会涉及到innerHTML)。...上面也说道,并不是所有的组件都会注入服务的,所以有了”注入器冒泡”: 一个组件申请获得一个依赖Angular先尝试用该组件自己的注入器来满足它。...通过路由的lazyload以及上面提到的模块化,我们可以把每个lazyload的模块单独打包成一个分块bundle文件,进入模块才请求和加载,当我们的业务规模很大的时候,首屏速度得到大幅度提升。...Promise需要调用then或者catch才能够执行,catch是另一种形式的then,调用then或者catch之后,它返回一个新的Promise,这样新的Promise也可以同样被调用,所以可以做成无限的...Rx的observable被subscribe之后,并不是继续返回一个新的observable,而是返回一个subscriber,这样用来取消订阅,但是这也导致了链式断裂,所以它不能像Promise那样组成无限

    2.6K10

    36 个JS 面试题为你助力金九银十(面试必读)

    promise是js中的一个对象,用于生成可能在将来产生结果的值。 值可以是已解析的值,也可以是说明为什么未解析该值的原因。...(2) 调用函数,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回,默认返回undefined。...: hoisted(); // logs "foo" function hoisted() { console.log('foo'); } 函数表达式 使用表达式创建函数,称为函数表达式。...BOM 和 DOM 的关系 BOM全称Browser Object Model,即浏览器对象模型,主要处理浏览器窗口和框架。...36.解释 JS 事件委托模型? 在JS中,有一些很酷的东西。其中之一是委托模型捕获和冒泡,允许函数在一个特定的时间实现一个处理程序到多个元素,这称为事件委托。

    7.3K30

    前端面试题angular_Vue前端面试题

    浏览器接受到可以被angular context处理的事件就会触发digest循环,这个循环是由两个更小的循环组合起来的,一个是watch列表,一个是evalAsync列表,而watch列表在digest...digest循环结束,DOM相应地变化。...step1:Angular解析ng-app然后在内存中创建rootScope。 step2:angular回继续解析,找到{ {}}表达式,并解析成变量。...digest会检查该scope和它的子scope,当你确定当前操作影响它们,用 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站提供信息存储空间服务,不拥有所有权,不承担相关法律责任。发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    14.1K20

    【Hybrid开发高级系列】AngularJS(三)——开发实践

    (当你在试用空格的效果,确保所有的模块都被标记为绿色)         好的,现在按下回车键。...1.2 架构设计技巧 1.2.2 请求Service层 1.2.3 数据模型层 1.2.4 业务逻辑层 1.2.5 界面表现层 1.3 代码开发技巧 1.3.1 跨html跳转到某一个业务模块 $window.location.href...http://blog.csdn.net/qianqianyixiao1/article/details/51146519 AngularJs返回前一页面刷新一次前面页面 http://blog.csdn.net...function called from back button's ng-click="back()"             $rootScope.back = function() {//实现返回函数...原因分析:         在controller加载,碰到登录失效,虽然要跳转到登录页,但是当前runloop周期内,还是应该继续执行剩余代码,因为事件绑定逻辑都要执行完,不然页面回退回来,就会发现事件无法响应

    24720

    这样回答前端面试题才能拿到offer2

    什么是文档的预解析?Webkit 和 Firefox 都做了这个优化,执行 JavaScript 脚本,另一个线程解析剩下的文档,并加载后面需要通过网络加载的资源。...3、处于Pending状态,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。...理论上说,客户端也可以指定向DNS服务器查询用TCP,但事实上,很多DNS服务器进行配置的时候,支持UDP查询包。...发送方向接收方发 送报文,会依次发送窗口内的所有报文段,并且设置一个定时器,这个定时器可以理解为是最早发送但未收到确认的报文段。...如果在定时器的时间内收到某一个报文段的确认回答,则滑动窗口,将窗口的首部向后滑动到确认报文段的后一个位置,此时 果还有已发送但没有确认的报文段,则重新设置定时器,如果没有了则关闭定时器。

    48240

    新手们容易在Promise上挖的坑~

    所以很多新手刚开始学习和使用Promise,如果思路不能转换过来的话,经常会出现一些本末倒置的错误。...每一个函数只会在前一个 promise 被调用并且完成回调后调用,并且这个函数会被前一个 promise 的输出调用,稍后我们在这块做更多的讨论。...并且 Promise.all() 会将执行结果组成的数组返回到下一个函数,比如当你希望从 PouchDB 中获取多个对象,会非常有用。...另一种策略是使用构造函数声明模式,它在用来包裹非 promise API 非常有用。举例来说,为了包裹一个回调风格的 API Node 的 fs.readFile ,你可以简单的这么做: ?...每一个 promise 都会提供给你一个 then() 函数 (或是 catch(),实际上只是 then(null, ...) 的语法糖)。当我们在 then() 函数内部: ?

    1.5K50

    36 个JS 面试题为你助力金九银十(面试必读)

    promise是js中的一个对象,用于生成可能在将来产生结果的值。 值可以是已解析的值,也可以是说明为什么未解析该值的原因。...(2) 调用函数,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefined。 (4)函数没有返回,默认返回undefined。...: hoisted(); // logs "foo" function hoisted() { console.log('foo'); } 函数表达式 使用表达式创建函数,称为函数表达式。...BOM 和 DOM 的关系 BOM全称Browser Object Model,即浏览器对象模型,主要处理浏览器窗口和框架。...36.解释 JS 事件委托模型? 在JS中,有一些很酷的东西。其中之一是委托模型捕获和冒泡,允许函数在一个特定的时间实现一个处理程序到多个元素,这称为事件委托。

    6K20

    从URL输入到页面展现到底发生什么?

    DNS负载均衡(DNS重定向) DNS负载均衡技术的实现原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询, DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果...当你浏览网页,浏览器会在加载网页对网页中的域名进行解析缓存,这样在你单击当前网页中的连接就无需进行 DNS 的解析,减少用户等待时间,提高用户体验。...假装我是一个传统的MVC模型,RD同学请无视图片六、浏览器解析渲染页面浏览器的主要构成图片用户界面 (User Interface) - 包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分浏览器引擎...参考:前端进阶面试题详细解答进程可能包括主控进程,插件进程,GPU,tab页(浏览器内核)等等Browser进程:浏览器的主进程(负责协调、主控),只有一个第三方插件进程:每种类型的插件对应一个进程,使用该插件才创建...一般经常用到的如全局变量值 NaN、undefined,全局函数 parseInt()、parseFloat() 用来实例化对象的构造函数 Date、Object 等,还有提供数学计算的单体内置对象

    56240

    社招中级前端笔试面试题总结_2023-02-28

    ->promise1 end->script end->promise2->settimeout JS主线程执行到Promise对象promise1.then() 的回调就是一个 task promise1...Promise 对象,函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再执行函数体内后面的语句。...await通过返回一个Promise对象来实现同步的效果。 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?...因为 async 函数返回一个 Promise 对象,所以 await 可以用于等待一个 async 函数返回值——这也可以说是 await 在等 async 函数,但要清楚,它等的实际是一个返回值。...方法1:页面的元素数小于x,则认为页面白屏。比如“没有任何内容”,可以获取页面的DOM节点数,判断DOM节点数少于某个阈值X,则认为白屏。 方法2:页面出现业务定义的错误码,则认为是白屏。

    41220

    前端高频面试题汇总(一)

    事件模型?事件是用户操作网页发生的交互动作,比如 click/move, 事件除了用户触发的动作外,还可以是文档加载,窗口滚动和大小调整。...事件是用户操作网页发生的交互动作或者网页本身的一些操作,现代浏览器一共有三种事件模型:DOM0 级事件模型,这种模型不会传播,所以没有事件流的概念,但是现在有的浏览器支持以冒泡的方式实现,它可以在网页中直接定义监听函数...Webkit 和 Firefox 都做了这个优化,执行 JavaScript 脚本,另一个线程解析剩下的文档,并加载后面需要通过网络加载的资源。这种方式可以使资源并行加载从而使整体速度更快。...发送方向接收方发 送报文,会依次发送窗口内的所有报文段,并且设置一个定时器,这个定时器可以理解为是最早发送但未收到确认的报文段。...src会将其指向的资源下载并应⽤到⽂档内,请求js脚本。浏览器解析到该元素,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,所以⼀般js脚本会放在页面底部。

    57750

    前端常见20道高频面试题深入解析

    浅拷贝 浅拷贝是会将对象的每个属性进行依次复制,但是对象的属性值是引用类型,实质复制的是其引用,引用指向的值改变也会跟着变化。...参数处理略有差别。...—— 摘录自《你不知道的JavaScript》(上卷) 作用域有两种工作模型:词法作用域和动态作用域,JS采用的是词法作用域工作模型,词法作用域意味着作用域是由书写代码变量和函数声明的位置决定的。...浏览器窗口缩放,resize事件(窗口停止改变大小之后重新计算布局)等。 14. 节流函数的作用是什么?...《你不知道的JavaScript》 函数可以记住并访问所在的词法作用域,就产生了闭包,即使函数是在当前词法作用域之外执行。 创建一个闭包 闭包使得函数可以继续访问定义的词法作用域。

    1.2K30
    领券