gpt4 book ai didi

javascript - Backbone + RequireJS - 等待创建另一个延迟对象的 Deferred

转载 作者:行者123 更新时间:2023-11-30 10:37:58 25 4
gpt4 key购买 nike

我在写一个Backbone + RequireJS的项目,遇到如下情况:

模块 A:

Backbone.Mediator.publish('ajax:fetch:in:module:b');

// I need to do something like **$.ajax(options).done()** here

模块 B:

subscriptions: {
'ajax:fetch:in:module:b': fetch
},

fetch: {
$.ajax(options);
}

我试图在模块 B 的共享命名空间(如 cache.temp = $.ajax(options))下 Hook $.ajax(options),然后在模块 A 中调用 cache.temp.done(),但它发生在 $.ajax(options) 创建之前,所以 cache.temp 只是一个 undefined

我想解决这个问题的一种方法是创建一个 deferred 在 $.ajax(options) 准备好之前延迟代码的执行,但我不太确定这是否可行.或者,如果周围有更好的想法,我会洗耳恭听。

最佳答案

这是 requirejs 使用 jquery deferred 的一个简单例子:

moduleA.js

define(['require', 'jquery'], function(require, $) {

var deferred = $.Deferred();

require(['moduleB'], function(moduleB) {
deferred.resolve(moduleB);
});

return deferred.promise();

});

app.js

require(['moduleA'], function(deferred) {
deferred.done(function(moduleA) {
console.log(moduleA);
});
});

关于javascript - Backbone + RequireJS - 等待创建另一个延迟对象的 Deferred,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888681/

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