gpt4 book ai didi

javascript - 在同步上下文中调用 defer.notify() 不会执行回调

转载 作者:行者123 更新时间:2023-12-03 12:02:44 24 4
gpt4 key购买 nike

考虑以下代码片段 ( demo ):

  function asyncCall() {
var result = $q.defer();
result.notify("Notify: sync");
setTimeout(function () {
result.notify("Notify: async (timeout)");
}, 1000);
return result.promise;
}

asyncCall().then(null /* success */, null /* error */,
function (notify) {
console.log("Caller Notify: " + notify);
}
);

第一个通知 - Notify:sync - 不会触发通知回调,我希望在控制台中看到:

Notify: sync
Notify: async (timeout)

但是我得到了:

Notify: async (timeout)

有没有办法在同步上下文中“排队”通知调用并执行回调两次?

最佳答案

根据@Benjamin Gruenbaum的建议,我将我的评论发布到该问题作为答案:

同步调用和异步调用没有区别。

问题是您的回调是在 result.notify("Notify:sync"); 触发后注册的。

关于javascript - 在同步上下文中调用 defer.notify() 不会执行回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25341024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com