ionic2页面回传值,关于Typescript的Promise承诺

来源:互联网 发布:芈月传 大秦帝国 知乎 编辑:程序博客网 时间:2024/03/29 09:51

经典:javascript Promise介绍 来自谷歌的说明,简单直观


来自谷歌

Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 方法和 reject 方法。如果异步操作成功,则用 resolve 方法将 Promise 对象的状态,从「未完成」变为「成功」(即从 pending 变为 resolved);如果异步操作失败,则用 reject 方法将 Promise 对象的状态,从「未完成」变为「失败」(即从 pending 变为 rejected)。



来自谷歌

then()有两个参数,一个成功案例的回调,另一个是失败的情况。两者都是可选的,因此您可以为成功或失败的情况添加回调。



来自谷歌



来自谷歌

这是一个很好的例子,如果能够获取到对应url的xml请求,则req.status=200,在if中可以执行你想做出的操作,并执行resolve(req.response),其中req.response是请求得到的结果,如果找不到则返回req.status=404,并reject()返回错误。

在ionic2中,页面回传值的方法:

同上所描述那般

做出一个承诺



来自tc

将该方法作为一个参数传入push的页面中

注意:最开始我本来是采用如下图方式的,但是很不幸,出现了问题,问题所在就是关于这个this的作用域问题。这里要用到ES6的箭头函数 Arrow Functions。普通function函数和箭头函数的行为有一个微妙的区别,箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。



来自tc

回传值,将需要传过去的指丢入contactsCallback中,即将数据从该页面传到上一个页面中,并且then后,通过是执行了resolve()还是reject()来识别是否成功,如果成功,pop掉当前页面,否则输出错误。


0 0
原创粉丝点击