Question: I'm trying to work out the Coinbase Pro node.js API.

When running this:

```
const buyParams = {
  price: '100.00', // USD
  size: '1', // BTC
  product_id: 'BTC-USD',
};
authedClient.buy(buyParams, callback);

```

I have the following error `callback is not defined` 

So I'm trying to understand how does callback work exactly. 

What is the callback here exactly? If I understand well I need to define the callback which is a function but what would be the purpose of this function? I this because I need to wait for the answer from `authedClient` method? Or this something else?

Answer: 
Usually callbacks are used when a task takes some time and for one of two reasons: to "give" you the value that took so long to prodce, or to notify you about an event, usually "I'm done".

In NodeJs it's a common pattern to use callbacks like this `function(error, value){...}` where the function is either called with an error, if one occurred `callback(err);` or the value `callback(null, result);`

In your case, you need to read in the API-Doc how and when the callback is called. What arguments are provided, etc.

> 
> I'm asking why do I need to define it.
> 
> 
> 

Because the author of the `buy()` method thaught that every user of this function would want to be noified when this task is done, and would want to recieve whatever value this callback provides, so there must be an error, if you don't provide a proper callback-function. That's why he throws an Error.
You should read API carefully, but in this situation the second parameter of **.buy** is a function you passed to it to execute after .buy runs.

```
const buyParams = {
price: '100.00', // USD
size: '1', // BTC
product_id: 'BTC-USD',
};
const cb = ()=> {
 console.log('Buy finished!');
}
authedClient.buy(buyParams, cb);

```

you should read API document for parameters of cb. but in simple way it's some thing like up code! and after buy finished cb called and log the 'Buy Finished';

feel free to ask more questions.