本文主要是介绍ionic2页面回传值,关于Typescript的Promise承诺,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
经典: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中,页面回传值的方法:
同上所描述那般
做出一个承诺
将该方法作为一个参数传入push的页面中
注意:最开始我本来是采用如下图方式的,但是很不幸,出现了问题,问题所在就是关于这个this的作用域问题。这里要用到ES6的箭头函数 Arrow Functions。普通function函数和箭头函数的行为有一个微妙的区别,箭头函数没有它自己的this值,箭头函数内的this值继承自外围作用域。
回传值,将需要传过去的指丢入contactsCallback中,即将数据从该页面传到上一个页面中,并且then后,通过是执行了resolve()还是reject()来识别是否成功,如果成功,pop掉当前页面,否则输出错误。
这篇关于ionic2页面回传值,关于Typescript的Promise承诺的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!