我有一个JavaScript函数需要返回true才能更新浏览器UI。在执行代码进行后端调用之前,如何确保函数返回?从javascript函数返回值,然后在其中执行代码
self.resortCopy = function(item) {
self.resorts.push(item);
self.backendCall(item) // this needs to be performed after returning true
return true;
我有一个JavaScript函数需要返回true才能更新浏览器UI。在执行代码进行后端调用之前,如何确保函数返回?从javascript函数返回值,然后在其中执行代码
self.resortCopy = function(item) {
self.resorts.push(item);
self.backendCall(item) // this needs to be performed after returning true
return true;
假设浏览器JS,你可以使用setTimeout的普遍,这将保证当前代码路径结束backendCall代码执行前,但它并没有说别的什么时候(除非你指定一个超时期限。)
self.resortCopy = function(item) {
self.resorts.push(item);
window.setTimeout(self.backendCall.bind(self, item), 0);
return true;
这是常规的Js。不知道可以这样做,但根据意见,代码已经asyc –
我不熟悉“常规JS”作为说明符。即使它在浏览器中,哪些浏览器被定位也会产生巨大的差异。 – hemp
抱歉,我的意思是,来自浏览器(chrome)的javascript正在调用ajax来调用后端服务。这里不使用任何框架。 –
在return语句之后真的没有办法放置函数调用,你可以希望的最好的方法是延迟执行超时,并且希望这可以起作用。 – adeneo
这是浏览器JS或NodeJS?如果浏览器,它需要支持多久?如果NodeJS,哪个版本?对于可用的语言功能有所不同。 – hemp
它已经是异步的。当你调用self.backendCall(item)时,js不会等待它完成并立即调用下一行'return true'。 –