【发布时间】:2017-05-04 19:51:36
【问题描述】:
我有一个 javascript 函数,它需要返回 true 才能更新浏览器 UI。在执行代码进行后端调用之前,如何确保函数返回?
self.resortCopy = function(item) {
self.resorts.push(item);
self.backendCall(item) // this needs to be performed after returning true
return true;
【问题讨论】:
-
实在没办法把函数调用放在return语句之后,你能希望的最好的就是用超时延迟执行,希望能行。
-
这个浏览器是JS还是NodeJS?如果是浏览器,它需要支持多远?如果是 NodeJS,哪个版本?对可用的语言功能有所不同。
-
它已经是异步的了。当您调用
self.backendCall(item)时,js 不会等待它完成并立即调用下一行return true。 -
@OleksiiChekulaev 好的,谢谢。我想还有其他问题
-
@OleksiiChekulaev,这是不正确的。 backendCall 中的任何代码都将首先执行。如果该代码包含 XHR 或 worker 执行或其他异步任务,则不会等待其回调,但所有其他代码将同步运行。
标签: javascript asynchronous browser settimeout setinterval