【发布时间】:2016-02-22 05:46:58
【问题描述】:
在许多 js 示例中,我看到对执行异步任务的函数的调用,例如:
var objectStoreTitleRequest = objectStore.get(title);
objectStoreTitleRequest.onsuccess = function() {
// Grab the data object returned as the result
var data = objectStoreTitleRequest.result;
}
(本例基于https://developer.mozilla.org/en-US/docs/Web/API/IDBRequest/onsuccess)
我想知道如果异步执行在设置 onsuccess 处理程序之前完成,这将如何工作。我希望在执行异步函数之前添加事件处理程序,但所有 js 示例都在调用之后添加处理程序(在本例中为:get())。这在内部如何解决?以及如何实现提供类似 API 的自定义对象?我想这一定是这样的
{self.result = do_work(); wait for onsuccess handler is set...; if handler_avail -> self.onsuccess(); }
【问题讨论】: