Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在meteor for helper函数中接收承诺值?_Meteor_Async Await_Callback - Fatal编程技术网

如何在meteor for helper函数中接收承诺值?

如何在meteor for helper函数中接收承诺值?,meteor,async-await,callback,Meteor,Async Await,Callback,我想和你一起工作。由于这些承诺是有效的,所以我考虑实施回调以获得结果 从“meteor/Templateing”导入{Template}; 从“meteor/reactive dict”导入{ReactiveDict} 从“@shopify/address”导入AddressFormatter; 导入“/main.html”; 常量地址={ 公司:“Shopify”, 名字:'恵子', 姓氏:'田中', 地址1:'八重洲1-5-3', 地址二:, 城市:'目黒区', 省:'JP-13', zip

我想和你一起工作。由于这些承诺是有效的,所以我考虑实施回调以获得结果

从“meteor/Templateing”导入{Template}; 从“meteor/reactive dict”导入{ReactiveDict} 从“@shopify/address”导入AddressFormatter; 导入“/main.html”; 常量地址={ 公司:“Shopify”, 名字:'恵子', 姓氏:'田中', 地址1:'八重洲1-5-3', 地址二:, 城市:'目黒区', 省:'JP-13', zip:'100-8994', 国家:'JP', 电话:, }; Template.hello.onCreatedfunction{ const addressFormatter=新的地址格式化程序'ja'; const instance=this instance.state=new ReactiveDict instance.state.setDefault'result'{ 格式化地址:, orderedFields: }; getDataaddressFormatter,函数{ //下一行将触发辅助对象,因为它会观察更改 //在反应式字典上创建此结果属性 instance.state.set'result'{ 格式化地址:r.formattedAddress, orderedFields:r.orderedFields }; }; } Template.hello.helpers{ 地址:功能{ console.logTemplate.instance.state.getresult; 返回Template.instance.state.get'result' } }; 函数getDataaddressFormatter,回调{ 常量fa=async=>{ const result=等待地址格式化程序。格式化地址; console.logresult 返回结果; } 常数=异步=>{ const promise=addressFormatter.getOrderedFields'CA'; promise.thensresult=>{ console.logresult; 返回结果; }; } 让结果={ 格式地址:fa, orderedFields:共个 } 回调结果; } 我在模板中收到的唯一内容是[object Promise]。getData方法中的console.logs实际上显示了准确的数据,但它们不显示在teamplte中。如何接收这些值并让助手等待它们


编辑:我已经根据@Jankapunkt answer对其进行了编辑,但是对象仍然是空的,而getData中的结果不是空的。

您没有。助手可以立即返回值,但会由被动数据源触发

如果希望在数据到达后运行帮助程序,则应将此代码移动到onCreated中,并将值存储在反应式数据源中:

从“meteor/Templateing”导入{Template}; 从“meteor/reactive dict”导入{ReactiveDict} 从“@shopify/address”导入AddressFormatter; 导入“/main.html”; 常量地址={ 公司:“Shopify”, 名字:'恵子', 姓氏:'田中', 地址1:'八重洲1-5-3', 地址二:, 城市:'目黒区', 省:'JP-13', zip:'100-8994', 国家:'JP', 电话:, }; Template.hello.onCreatedfunction{ const instance=this instance.state=new ReactiveDict instance.state.setDefault'result'{ 格式化地址:, orderedFields: } const addressFormatter=新地址格式化程序'ja' getDataaddressFormatter .then{formattedAddress,orderedFields}=>{ //下一行将触发辅助对象,因为它会观察更改 //在反应式字典上创建此结果属性 state.set'result',{formattedAddress,orderedFields} } .catch=>console.error 返回结果; } Template.hello.helpers{ 地址:功能{ 返回Template.instance.state.get'result' } }; const getData=异步函数地址格式化程序{ const formattedAddress=等待地址formatter.formattAddress const orderedFields=await addressFormatter.getOrderedFields'CA' 返回{ 格式化地址, 有序字段 } } 阅读资料:


编辑:添加了一个简化的getData,它应该可以工作

而您不需要。助手可以立即返回值,但会由被动数据源触发

如果希望在数据到达后运行帮助程序,则应将此代码移动到onCreated中,并将值存储在反应式数据源中:

从“meteor/Templateing”导入{Template}; 从“meteor/reactive dict”导入{ReactiveDict} 从“@shopify/address”导入AddressFormatter; 导入“/main.html”; 常量地址={ 公司:“Shopify”, 名字:'恵子', 姓氏:'田中', 地址1:'八重洲1-5-3', 地址二:, 城市:'目黒区', 省:'JP-13', zip:'100-8994', 国家:'JP', 电话:, }; Template.hello.onCreatedfunction{ const instance=this instance.state=new ReactiveDict instance.state.setDefault'result'{ 格式化地址:, orderedFields: } const addressFormatter=新地址格式化程序'ja' getDataaddressFormatter .then{formattedAddress,orderedFields}=>{ //下一行将触发辅助对象,因为它会观察更改 //将此结果属性添加到- 词典 state.set'result',{formattedAddress,orderedFields} } .catch=>console.error 返回结果; } Template.hello.helpers{ 地址:功能{ 返回Template.instance.state.get'result' } }; const getData=异步函数地址格式化程序{ const formattedAddress=等待地址formatter.formattAddress const orderedFields=await addressFormatter.getOrderedFields'CA' 返回{ 格式化地址, 有序字段 } } 阅读资料:


编辑:添加了一个简化的getData,应该可以使用

谢谢你,我的错。更改了它。我已根据您的建议对其进行了编辑,但对象仍然为空,而getData中的结果会产生正确和预期的输出:/r在回调中返回,但不会显示在模板上?然后你需要检查你的html,它是否正确地利用了Address返回的值我的意思是我只是在helper函数中打印出结果,并且对象已经是空的,你可以在我编辑的帖子中看到console.log。在我的模板中,我只是像这样访问它们{{address.formattedAddress}}{{address.orderedFields}}。我知道它们是dict,需要显式访问键,或者需要迭代条目,但它们都是空的。您希望何时调用getData?谢谢,我的错。更改了它。我已根据您的建议对其进行了编辑,但对象仍然为空,而getData中的结果会产生正确和预期的输出:/r在回调中返回,但不会显示在模板上?然后你需要检查你的html,它是否正确地利用了Address返回的值我的意思是我只是在helper函数中打印出结果,并且对象已经是空的,你可以在我编辑的帖子中看到console.log。在我的模板中,我只是像这样访问它们{{address.formattedAddress}}{{address.orderedFields}}。我知道它们是dict,需要显式地访问键,或者需要迭代条目,但它们无论如何都是空的。您希望什么时候调用getData?