在D3.js中,有一段时间我将传递一个回调函数作为参数,例如,在下面的delay()中:
d3.select('body').selectAll('div')
.data(distances)
.enter()
.append('div')
.html('.')
.style('width', '10px')
.style('opacity', 0)
.transition()
.delay(function(d, i) { return i * 1000 })问:我们如何知道回调函数应该有两个参数:d和i。它在什么文档中指定'd‘对应于数据,'i’对应索引?
我的问题不限于D3.js,而是js的一般惯例。在Angular.js中,我发现了类似的东西。例如,在传递给to ()的回调函数中:
// Simple GET request example:
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});我如何知道(即哪个文档指定的)这个回调函数应该接受一个参数,并且这个参数对应于响应?
发布于 2016-02-05 17:00:44
我的问题不限于D3.js,而是js的一般惯例。
它必须由您要传递回调的API方法来记录。对于您来说,没有其他方法可以知道回调将使用哪些参数调用,或者何时调用,预期返回什么(如果有的话),等等。
对于您的D3示例,文档
否则,如果延迟是一个函数,则对每个选定元素(按顺序排列)计算函数,传递当前基准
d和当前索引i,其中this上下文作为当前DOM元素。
对于您的AngularJS示例,then是一个承诺函数,记录在这里
承诺API ..。 方法
then(successCallback, errorCallback, notifyCallback) --无论承诺何时被解决或将被拒绝,只要结果可用,就会异步调用其中一个成功或错误回调。回调由一个参数调用:结果或拒绝原因。此外,在承诺被解决或拒绝之前,通知回调可以被调用0次或多次以提供进度指示。https://stackoverflow.com/questions/35229543
复制相似问题