Javascript "then"成员函数的 ing 不会触发 '15

标签 javascript

我正在尝试理解 javascript 的 then 结构(如果我理解正确的话,这可能是一种实现 promise 的简单方法)。我找到的几乎所有答案都是几年前的,从那时起事情似乎有了很大的更新。老实说,我也很难理解有关 promise 的文档,所以我很容易犯一个基本错误。

我有一些测试代码:

function foo(){
   this.start = function(){
       return {
           then: function(callback){
               alert("Waiting for this to finish.");
           }
      }
   }
}
var makeItSo = new foo();
makeItSo.start().then( function() {
    alert("I waited!");
});

尽管“正在等待完成”会触发,但“我等了!”从来不会。我需要在 foo 函数中更改什么才能使其正常工作?

最佳答案

您没有在“then”函数中调用“callback”,因此运行“I waited”警报的函数永远不会运行。尝试这个。

function foo(){
   this.start = function(){
       return {
           then: function(callback){
               alert("Waiting for this to finish.");
               callback()
           }
      }
   }
}
var makeItSo = new foo();
makeItSo.start().then( function() {
    alert("I waited!");
});

关于Javascript "then"成员函数的 ing 不会触发 '15,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33005106/

相关文章:

javascript - 为什么我在尝试将 Rollup 与 commonjs 结合使用时得到 "Uncaught ReferenceError: exports is not defined"?

javascript - Handlebar.js 不刷新我的模板

javascript - 拒绝应用来自...的样式,因为它的 MIME 类型 ('text/html' ) 不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查

javascript - Angular.js 发出重复请求但从未加载

Javascript .getHours() 无法正常工作

javascript - 来自指令的 Angular 范围变量不以 ng 样式同步

javascript - AngularJs 中的图像路径

Javascript 删除克隆的元素

javascript - 如何使垂直导航默认状态为折叠?

php - 如何删除 facebook.com 的所有 cookie?