我有下面的代码(我已剥离和简化):如何使JavaScript回调函数首先执行?
function myOrder() {
setLocation(); // sets a value for global variable 'location'
// using GET
$.post('http://111.111.111.111/order', {
Item: Chair,
Price: 50,
Location: location;
})
}
的问题是,这个函数定义的setLocation()回调函数完成之前执行后()代码。
我需要setLocation()函数首先完成,因此它可以为'location'指定一个全局变量,然后将其用作POST部分中的值。
有谁知道这是否可以做到?
由于
编辑:为了澄清: setLocation()是一个GET请求,即一个下全局变量名“位置”得到通过GPS并将其存储在当前位置。
所以我认为是在回调函数完成其GET响应之前myOrder()方法POSTS。
您可以添加实施'setLocation'? – trincot
查看[Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)。函数setLocation应该返回一个。 – Ricky
setLocation应该返回一个Promise,它应该在函数成功执行时解析。您可以在.then()处理程序中添加发布请求。 –