Javascript 函数返回后如何执行回调
我无法处理回叫。这里有一个简单的例子来说明我的困惑。返回getData后需要调用回调printDataJavascript 函数返回后如何执行回调,javascript,Javascript,我无法处理回叫。这里有一个简单的例子来说明我的困惑。返回getData后需要调用回调printData function data(cb) { var myData = getData(); cb(myData); } function printData(data) { console.log("printing " + data) } function getData () { console.log("getting data");
function data(cb) {
var myData = getData();
cb(myData);
}
function printData(data) {
console.log("printing " + data)
}
function getData () {
console.log("getting data");
setTimeout(function(){
console.log("finishing data");
return "this is the data"
}), 3000;
}
data(printData);
//OUTPUT
//getting data
//printing undefined
//finishing data
您可以将函数更新为以下内容
function data(cb) {
getData(cb); // pass the callback function
}
function printData(data) {
console.log("printing " + data)
}
function getData (cb) {
console.log("getting data");
setTimeout(function(){
console.log("finishing data");
cb("this is the data"); // call the callback function
//return "this is the data" // this return is useless, remove it
}), 3000;
}
data(printData);
作为参考-
getData
会立即返回。setTimeout
回调中的return
无效getData
也需要回调。看看这个:为什么需要回调?在您的代码中,它似乎一点用处都没有。