javascript – 将成功的promise promise中的值赋值给外部变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 将成功的promise promise中的值赋值给外部变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1498字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 将成功的promise promise中的值赋值给外部变量](/upload/InfoBanner/zyjiaocheng/702/6aef89750b74462ea1cd38a7dc763f16.jpg)
我有一个非常愚蠢的问题.考虑以下:
vm.feed = getFeed().then(function(data) {return data;});
getFeed()返回成功解析的$q延迟承诺(我在角上).
我的目标是将vm.feed设置为等于成功回调返回的数据值.就像现在一样,代码只是将vm.feed赋予等于getFeed()返回的$promise对象.
我知道我可以简单地做:vm.feed =已解析函数内的数据,但我想理解为什么这段代码不能正常工作.
PD:promise正确解析,即使在解析后,vm.feed仍然等于Promise,而不是数据.我在10秒后复制了console.log的vm.feed:
Promise {$$state: Object} $$state: Objectstatus:1 value: Object
Promise对象中的value属性包含我想要分配给vm.feed(e.i. data)的promise的实际解决方案.
谢谢!
解决方法:
您的语句只是要求解释器将then()返回的值赋给vm.feed变量. then()返回一个Promise(如你所见:https://github.com/angular/angular.js/blob/master/src/ng/q.js#L283).你可以通过看到Promise(一个简单的对象)被拉出函数并被分配给vm.feed来描绘这一点.一旦解释器执行该行,就会发生这种情况.
由于你在调用then()时没有运行成功的回调,但只有当你的promise被解析时(稍后,异步),then()才能为调用者返回它的值.这是Javascript的默认方式.这是Promises引入的确切原因,因此您可以要求解释器以回调的形式将值推送给您.
虽然正在为JavaScript工作的未来版本(ES2016)中引入了几个关键字,但正如您现在所期望的那样.好消息是,您可以通过从ES2016转发到当前广泛支持的版本(ES5),开始编写这样的代码.
有关该主题的精彩介绍,请访问:https://www.youtube.com/watch?v=lil4YCCXRYc
要立即使用它,您可以通过Babel:https://babeljs.io/docs/usage/experimental/(通过–stage 1运行)来转换代码.
您还可以在此处查看一些示例:https://github.com/lukehoban/ecmascript-asyncawait.
内容总结
以上是互联网集市为您收集整理的javascript – 将成功的promise promise中的值赋值给外部变量全部内容,希望文章能够帮你解决javascript – 将成功的promise promise中的值赋值给外部变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。