比如,
Q "Hello world"
.then (str)->
"hello 2"
.then (str2)->
# str 怎么获取?
备选方案 1:闭包法
Q "hello world"
.then (str)->
Q "hello 2"
.then (str2)->
console.log str, str2
缺点:不好看,陷入了 callback hell。
备选方案 2:外部变量法
str = null
Q "hello world"
.then (s)->
s = str
"hello 2"
.then (str2)->
console.log str, str2
缺点:用跨越作用域的变量,显得不太干净
备选方案 3:返回数组法
Q "hello world"
.then (str)->
[str, "hello 2"]
.then (s)->
console.log s[0], s[1]
缺点:返回值意义不明朗;要向下传递多层的时候麻烦。
所以大家遇到这种问题的时候怎么办?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.