gpt4 book ai didi

javascript - Dojo 延迟未解决

转载 作者:行者123 更新时间:2023-11-30 17:26:50 26 4
gpt4 key购买 nike

我有以下javascript

var setPrefillVehicleValueDeferred = new Deferred();
makePrefillCallsDeferred.then(lang.hitch(this, function () {
setPrefillVehicleValueDeferred = this._setPrefillVehicleValue();
//this is being called
setPrefillVehicleValueDeferred.then(function () {
alert("resolving recall inside");
recallDfd.resolve(data);
});
}));

//NOT being called
setPrefillVehicleValueDeferred.then(function () {
alert("resolving recall");
recallDfd.resolve(data);
});

请注意,任何 ...deferred...dfd 变量都将是 Deferred 对象

我的问题是,当延迟被解决时,隔离的 setPrefillVehicleValueDeferred.then() 没有被触发,但是完全相同的代码,移到更近的范围内被触发。这只是代码的一小段,但我基本上需要单独的 then() 调用来执行,当前调用的那个只是为了调试目的,看看出了什么问题。

有人知道为什么我想要的没有被触发吗?

我应该补充一点,this._setPrefillVehicleValue() 正在返回一个已解析的延迟对象

最佳答案

当进行外部 setPrefillVehicleValueDeferred.then 调用时,setPrefillVehicleValueDeferred 的值是您自 Deferred() 创建的新对象 makePrefillCallsDeferred 是异步的。所以它不是基于 this._setPrefillVehicleValue 返回的延迟对象。

this._setPrefillVehicleValue 被解析时,你可以解析外部 Deferred 对象,我认为这会得到你想要的结果:

var setPrefillVehicleValueDeferred = new Deferred();
makePrefillCallsDeferred.then(lang.hitch(this, function () {
this._setPrefillVehicleValue().then(function () {
setPrefillVehicleValueDeferred.resolve();
});
}));

setPrefillVehicleValueDeferred.then(function () {
alert("resolving recall");
recallDfd.resolve(data);
});

关于javascript - Dojo 延迟未解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082809/

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