a = function (){
var o = {}
son(function(){
o.x = 1,
o.y = 2
return o //??
})
return o //??
}
如何让子函数运算完后父函数再返回结果呢?
目前返回的应该是Object {}
我希望得到 Object { x: 1, y: 2 }
本来想简化一下问题,但是看来大家对我简化的问题不太明白,囧~
$.extend($._, {
get_color: function(pic) {
d = {}
RGBaster.colors(pic, {
success: function(payload) {
color = payload.secondary[0]
rgb = color.split(',')
brightness = (rgb[0] * 30 + rgb[1] * 59 + rgb[2] * 11 + 50) / 255
brightness < 50 ? d.theme = 'drak' : d.theme = 'light'
d.bgcolor = 'rgb(' + color + ')'
console.log(d); //这个结果是我希望返回到get_color中的
}
})
}
}
RGBaster.colors
是一个异步执行的方法
我希望在调用 $._.get_color('img')
时可以返回上方代码中log
的结果,然后现在的问题就是怎么把 RGBaster.colors
运算后的结果返回到 $._.get_color
里
1) RGBaster.colors 是一个异步执行的方法,那么也就是这个函数在其函数体内的同步方法调用完毕后,将回到get_color函数体继续向下执行,不会等待异步方法的执行完成
2)你想
$._.get_color('img')
执行完了后就得到异步执行的结果是不可能的3)你可以换个实现思路,既然是异步的,那么就等RGBaster.colors执行完了,通知你~~嗯,对的,就是使用回调函数
4) promise也是可以的~~~