的fileA之前
userID = (userName) ->
id = 0
someAPI.getUser userName, (err, data, res) ->
id = data.id if data
console.log id # Outputs ID
return
id
console.log userID('someUsername') # Outputs 0
FILEB
getUser: (username, callback) ->
return api.get 'users/show', { 'username': username }, callback
我怎樣才能console.log userID('someUsername')
輸出ID爲好,而不是0?即請在返回ID之前等待。
我曾嘗試隨機包裝與Meteor.wrapAsync和Meteor.bindEnvironment的東西,但似乎無法得到任何地方。
把它放在'someAPI.getUser'的回調中。 – Pointy 2014-10-01 15:22:11
歡迎來到異步的奇妙世界,你不能那樣做。請參閱相關http://stackoverflow.com/q/23667086/1331430 – 2014-10-01 15:29:25
與流星相關的答案是使用期貨。閱讀[this](https://www.discovermeteor.com/patterns/5828399)和[this](https://gist.github.com/possibilities/3443021)。 – richsilv 2014-10-01 15:41:49