简体   繁体   English

在 Javascript function 中返回与回调

[英]return vs. callback in a Javascript function

Say I write this function...说我写这个 function...

var sayHi = function() {
  return "hi";
}

alert(sayHi()); will return "hi".将返回“嗨”。

Now if I write it this way...现在如果我这样写...

var sayHi = function(callback) {
  callback("hi");
}

How do I display "hi" with this function?如何使用此 function 显示“hi”?

Based on an example here: http://nowjs.com/doc基于此处的示例: http://nowjs.com/doc

You pass a function to sayHi, so I imagine this:你通过一个 function 来sayHi,所以我想象一下:

sayHi(alert);

you must have defined some callback function or pass a anonymous function:您必须定义了一些回调 function 或传递匿名 function:

var sayHi = function(callback) {
  callback("hi");
}

sayHi(function(message){
  alert(message);
});
sayHi(function(value) {
    alert(value);
});

Try this:尝试这个:

sayHi(function(msg){
    alert(msg)
});

Your new sayHi function doesn't return a value, so you have to perform the alert in the callback function.您的新sayHi function 不返回值,因此您必须在回调 function 中执行警报。

sayHi(function(msg) {
    alert(msg);
});

You have to invert your thinking process when using callbacks.使用回调时,您必须颠倒您的思维过程。 Instead of writing the next operation first, you write the next operation last.不是先写下一个操作,而是最后写下一个操作。

Here in example callback is a function.这里的示例回调是 function。 So you should pass function argument.所以你应该通过 function 参数。

You may do this in 2 ways:您可以通过 2 种方式执行此操作:

var some_fun = function(some_str) {
    alert(some_str);
}

var sayHi = function(callback) {
  callback("hi");
}

    sayHi(some_fun)

or you can pass function when you call it:或者你可以在调用它时传递 function :

var sayHi = function(callback) {
  callback("hi");
}

sayHi(function(some_str){
  alert(some_str);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM