javascript - promise 仅适用于异步操作吗?

标签 javascript promise es6-promise

我想知道我是否可以将 promises 与我的倒数计时器一起使用。我的代码看起来像这样:

function countdown(duration, callback) {
  ...
}

function sayHi() {
  console.log('hi');
}

我通过做类似的事情来调用它

countdown(15, sayHi);

有什么办法可以代替吗?

countdown(15).then(sayHi); 

Here是我当前代码的 JSFiddle。

最佳答案

是的,promises 是一种“隐藏”回调的方式。对于您的示例,您可以使用这样的 promise :

function countdown(duration) {
    return new Promise(function (resolve, reject) {
        // wait for duration and resolve
        setTimeout(function () {
            resolve();
        }, duration);
    });
}

function sayHi() {
    console.log('hi');
}

countdown(1000).then(sayHi);

关于javascript - promise 仅适用于异步操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910233/

相关文章:

javascript - JS 数组中查找三重重复项

javascript - 如何在 Angular 应用程序中注入(inject) $stateProvider?

javascript - 如何在模块中使用变量(登录系统)

javascript - 递归调用 Promise 函数

angularjs - 在AngularJS中链接数量未知的Promise

javascript - 从具有 Angular 2 http 调用的函数返回 Promise,该调用返回 Observable

javascript - jQuery 是否具有与 Prototype 的 Element.identify 等效的功能?

javascript - Q.defer() 和 Promise() 的区别

javascript - Mocha - 如何测试 Unresolved promise ?

javascript - JS Promises : Relationship between . 然后语法和异步/等待(Apollo 客户端示例)