javascript - 创建一个空的 JavaScript Promise

标签 javascript angularjs promise angular-promise

我目前正在尝试创建一个工具来链接动态数量的 promise 。这是我的代码:

// NB: This is made using angular's $q, but this applies to anything else
promiseChain = function(array, passedPromise) {
    let chain = $q((resolve, reject) => resolve());
    for (let elem of array)
      chain = chain.then(_ => passedPromise(elem));
    return chain;
};

这是我的测试代码:

// This returns a timeout wrapped in a promise
let testFn = function(s) {
  return $timeout(function() {
    console.log(s);
  }, 500);
};

let promise = makePromiseChain([1,2,3,4,5,6,7,8,9], testFn);
promise.then(_ => console.log('finished'));

这有效。然而,令我烦恼的是 promiseChain 的第一行:

$q((resolve, reject) => resolve())

没有其他方法可以创建一个空的、 self 解决的 promise ,或者启动链条吗?我觉得使用这段代码很肮脏。 :/

最佳答案

您可以简单地使用 $q.when$q.resolve :

chain = $q.resolve(); // or the alias $q.when()

ES6 的 Promise 解析是 Promise.resolve(),因此使用 resolve 而不是 when 对于下一个查看的人来说可能会很容易代码。

关于javascript - 创建一个空的 JavaScript Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024125/

相关文章:

javascript - Angularjs 的智能表模块 - 与处理其指令相关的问题

javascript - jQuery 焦点不允许移出

javascript - Angular UI 路由器 - 通过路由传递动态数据?

javascript - 如何使用promise.all使用mysql insert来级联样式?

reactjs - 在更新状态和重定向之前等待所有 promise 解决

javascript - jQueryUI 自动完成 - 选择后模糊字段

javascript - 等待 NodeJS 中的异步方法

javascript - 当使用 AngularJS 禁用按钮时,如何更改按钮的文本?

angularjs - 类型错误 : Dbschema(Mongoose Schema) is not a function

javascript - 为什么这是未处理的 promise 拒绝?